Programmers

[PS/JS] 프로그래머스 Lv.2 : 점프와 순간 이동
문제 설명 더보기 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 re..

[PS/JS] 프로그래머스 Lv.2 : 예상 대진표
문제 설명 더보기 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진행됩니다. 이때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자..

[PS/JS] 프로그래머스 Lv.1 : 문자열 내 마음대로 정렬하기
문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50 이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다 생각 흐름 JavaScript의 sort와 문자열 유니코드 ..

[PS/Java] 프로그래머스 Lv.1 : 가운데 글자 가져오기
문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한 사항 s는 길이가 1 이상, 100이하인 스트링입니다. 생각 흐름 1. 들어오는 단어 s의 길이가 홀수인지 짝수인지에 따라 답을 도출해내는 알고리즘에 차이를 두어야 한다. 2. 짝수, 홀수에 맞게 substring 을 이용해 문자열을 잘라낸다. substring() 메소드는 인덱스를 0부터 계산하고, 매개변수가 2개 들어올 경우,인덱스 x부터 y전까지 문자열을 잘라낸다는 특징이 있다. class Solution { public String solution(String s) { String answer = ""; if(s.length() % 2 == 0){ /..

[PS/Java] 프로그래머스 Lv.1 : 없는 숫자 더하기
문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 생각 흐름 입력 숫자와 없는 숫자는 0~9로 제한적이다. 10만큼의 크기를 가지는 불린 배열을 만들어 numbers 배열의 요소를 체크한다. class Solution { public int solution(int[] numbers) { int answer = 0; boolean[] idx = new boolean[10]; //numbers[..

[PS/Java] 프로그래머스 Lv.1 : 제일 작은 수 제거하기
문제 설명 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해 주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를 들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴하고, [10] 면 [-1]을 리턴합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 생각 흐름 Arrays의 sort()를 이용해 푸는 방법과, 없이 푸는 방법 중 후자를 택해 문제풀이를 진행하였다 1. 리턴 배열이 빈 배열인 경우. 코드의 도입부에서, if문을 통해 arr의 길이가 1이면 바로 -1을 담아 리턴해주도록 하였다. if(arr.length == 1){..