목록Javascript + Typescript/자바스크립트로 알고리즘풀기 (335)
치춘짱베리굿나이스
수 정렬하기 5 문제 N개의 수가 주어졌을 때, 이를 비내림차순으로 정렬하는 프로그램을 작성하시오. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ Ak-1 ≤ Ak를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. 출력 첫째 줄부터 N개의 줄에 비내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 const sort = () => { let input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n")..
수 정렬하기 4 문제 N개의 수가 주어졌을 때, 이를 내림차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 내림차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 const sort = () => { let [n, ...arr] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n") .map(Number); console.log(arr.sort((a, b) => b - a).join("\n"))..
TV 크기 문제 김탑은 TV를 사러 인터넷 쇼핑몰에 들어갔다. 쇼핑을 하던 중에, TV의 크기는 그 TV의 대각선의 길이로 나타낸 다는 것을 알았다. 하지만, 김탑은 대각선의 길이가 같다고 해도, 실제 TV의 크기는 다를 수도 있다는 사실에 직접 TV를 보러갈걸 왜 인터넷 쇼핑을 대각선의 길이만 보고있는지 후회하고 있었다. 인터넷 쇼핑몰 관리자에게 이메일을 보내서 실제 높이와 실제 너비를 보내달라고 했지만, 관리자는 실제 높이와 실제 너비를 보내지 않고 그것의 비율을 보내왔다. TV의 대각선 길이와, 높이 너비의 비율이 주어졌을 때, 실제 높이와 너비의 길이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 TV의 대각선 길이 D, TV의 높이 비율 H, TV의 너비 비율 W이 공백 한 칸을 사이에 두고..
거의 소수 문제 어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다. 입력 첫째 줄에 왼쪽 범위 A와 오른쪽 범위 B가 공백 한 칸을 사이에 두고 주어진다. 출력 첫째 줄에 총 몇 개가 있는지 출력한다. 제한 1 ≤ A ≤ B ≤ 10^14 풀이 const almost = () => { let [a, b] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split(" ") .map(Number); let eratos = Array.from({ length: 10000001 }, (n, i) => i === 1..
심부름 가는 길 문제 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다. 집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자. 하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오. 입력 입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다. 첫 번째 줄에 집에서 학교까지의 이동 시간을 나타내는 초가 주어진다. 두 번째 줄에 학교에서 PC방까지의 이동 시간을 나타내는 초가 주..
스타워즈 로고 문제 스타워즈 로고를 예제 출력과 같이 출력하는 프로그램을 작성하시오. 출력 스타워즈 로고를 출력한다. 풀이 const starwars = () => { console.log( " 8888888888 888 88888\n 88 88 88 88 88 88\n 8888 88 88 88 88888\n 88 88 888888888 88 88\n88888888 88 88 88 88 888888\n\n88 88 88 888 88888 888888\n88 88 88 88 88 88 88 88\n88 8888 88 88 88 88888 8888\n 888 888 888888888 88 88 88\n 88 88 88 88 88 88888888" ); }; starwars(); 반성회
콜센터 문제 스타워즈에 등장하는 로봇인 C3PO는 요즘 콜센터에 근무하고 있다. 콜센터에 앉아있는 C3PO를 그리는 프로그램을 작성하시오. 출력 예제 출력처럼 콜센터에 앉아있는 C3PO를 출력한다. 마지막 세 줄의 두 '|' 사이에는 공백이 10개 있다. 풀이 const c3po = () => { console.log( " /~\\\n ( oo|\n _\\=/_\n / _ \\\n //|/.\\|\\\\\n || \\ / ||\n============\n| |\n| |\n| |" ); }; c3po(); 반성회 졸림
카드 게임 문제 JOI군은 카드 게임을 하고 있다. 이 카드 게임은 5회의 게임으로 진행되며, 그 총점으로 승부를 하는 게임이다. JOI군의 각 게임의 득점을 나타내는 정수가 주어졌을 때, JOI군의 총점을 구하는 프로그램을 작성하라. 입력 표준 입력에서 다음과 같은 데이터를 읽어온다. i 번째 줄(1 ≤ i ≤ 5)에는 정수 Ai가 적혀있다. 이것은 i번째 게임에서의 JOI군의 점수를 나타낸다. 출력 표준 출력에 JOI군의 총점을 한 줄로 출력하라. 제한 0 ≤ Ai ≤ 100. 풀이 const avg = () => { console.log( require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n") .map(Number) .r..