전체 글 167

[Programmers] 120835번 - 진료순서 정하기

Problem 문제 보기 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. Solution function solution(emergency) { let copy = [...emergency].sort((a, b) => b - a) return emergency.map(x => copy.indexOf(x) + 1) } 매개변수를 복사한 변수를 만들어놓고 해당 변수를 크기순정렬한다. 매개변수 요소를 하나씩 불러오면서 copy에 해당하는 인덱스에 + 1 (0인덱스가 있으므로) 한 값을 넣는다 function soluti..

[Programmers] 120887번 - k의 개수

Problem 문제 보기 1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요. Solution function solution(i, j, k) { return [...Array(j - i + 1).fill(0).map(x => i++).map(String).join('')].filter(x => x === k.toString()).length } 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장 -> 말에 5번이 등장하는데 왜 6번이지? 의문이었는데 11이 1이 2번 등장하기 때문에 총 6번이 등장하는 것이 맞다. 그렇..

[Programmers] 120890번 - 가까운 수

Problem 문제 보기 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. Solution function solution(array, n) { let arr = array.sort((x, y) => x - y) const a = arr.map(x => Math.abs(n - x)) const aMin = a.indexOf(Math.min(...a)) return arr[aMin] } 처음에 다른 코드로 입력했을 때 케이스 5번이 오류나서 확인해보니 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다. 조건이 있었다. 이 조건에 해당하는 코드로 다시 작성해보니 통과했다. ..

[Programmers] 120842번 - 2차원 배열

Problem 문제 보기 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. Solution function solution(num_list, n) { let answer = new Array(num_list.length / n).fill(0).map(() => new Array(n)); let num = 0; for (let i =..

[Programmers] 120886번 - A로 B 만들기

Problem 문제 보기 문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요. Solution function solution(before, after) { let count = 0; for(let i = 0; i < before.length; i++){ if(after.includes(before[i])){ count++; after = after.replace(before[i], " ") } } return count === after.length ? 1 : 0; } 내가 복잡하게 풀었다 아래와 같이 한줄로 끝낼 수 있다 각 before와 after를 so..

[Programmers] 120838번 - 모스부호(1)

Problem 문제 보기 머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요. 모스부호는 다음과 같습니다. morse = { '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f', '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l', '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r', '...':'s','-':'t','..-':'..

[Programmers] 120888번 - 중복된 문자 제거

Problem 문제 보기 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요. Solution function solution(my_string) { const set = new Set([...my_string]); return [...set].join(''); } 중복을 허용하지 않는 set을 이용한다. 아래 한줄로 변경할 수 있다. function solution(my_string) { return [...new Set(my_string)].join(''); }

[Programmers] 120846번 - 합성수 찾기

Problem 문제 보기 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요. Solution function solution(n) { let count = 0; for(let i = 1; i x + index + 1).filter(x => i % x === 0).length >= 3) count++ } return count; } 1. Array(i) : i개의 요소를 가진 배열 만들어줌 2. fill(0) : 위의 요소를 0으로 채움 3. map() : 각 요소값 + 각 요소의 index + 1을 해줌 -> 1, 2, 3, 4... 순서대로 각 요소값 대입 4. filter() : i를 ..