각 원소가 "이름 점수" 형태(공백으로 구분)인 로그 배열 logs가 주어져요. 이름은 소문자 알파벳, 점수는 정수예요.
점수가 높은 사람부터 오도록, 점수가 같으면 이름 사전순으로 정렬한 뒤, 이름만 담은 배열을 반환해요.
문자열을 값으로 바꾸는 파싱과 다중 기준 정렬을 한 번에 다루는 문제예요. 점수를 숫자로 바꾸지 않고 문자열로 비교하면 틀리니 조심해요.
예시
예시 1
예시 2
제한 사항
- 1 ≤ logs.length ≤ 100,000
- 0 ≤ 점수 ≤ 1,000,000
- 이름은 서로 다르고, 각 줄은 이름과 점수가 공백 하나로 구분돼요.
각 줄을 공백으로 나눠 이름과 점수로 분리하고, 점수는 숫자로 바꿔요. 점수 내림차순·이름 오름차순으로 정렬한 뒤 이름만 뽑아요. JavaScript는 비교자에서
b.score - a.score || a.name.localeCompare(b.name), 파이썬은 key=lambda p: (-p[1], p[0])를 써요.javascriptCopy codefunction parseAndRank(logs) {const parsed = logs.map((line) => {const [name, score] = line.split(" ");return [name, Number(score)];});parsed.sort((a, b) => b[1] - a[1] || (a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0));return parsed.map((p) => p[0]);}
이전 문제가장 긴 팰린드롬 부분 문자열
다음 문제격자 탐색 + 상태 관리
예시 테스트만 실행 (Cmd/Ctrl+Enter)
숨김 테스트까지 채점 (Cmd/Ctrl+Shift+Enter)
에디터를 불러오고 있어요…
코드를 작성하고Ctrl↵를 눌러 예시 테스트를 확인해 보세요.