일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- array
- SQL
- Java
- Eclipse
- 해쉬
- coding test
- 자료구조
- string
- 정렬
- point queue
- HashSet
- Stack
- compare()
- Python
- javac
- programmers
- HashMap
- 스파르타코딩클럽
- HTML
- Queue
- hash
- 우선순위큐
- CSS
- 코딩테스트
- Coding
- 배열
- 네이버
- 자바
- Naver
- 프로그래머스
- Today
- Total
목록정렬 (2)
youngik
처음부터 많이 헤매였던 문제이기도 하고, 도저히 정렬방법에 대해서 생각을 못하다가 간단히 어떻게 정렬을 해야되는지 힌트를 보고나서 쉽게 풀었던 문제였던 것 같다. 처음에 내가 생각했던건 1의자리수부터 비교해서 높은 순서대로 나열을 하고 이후에 동일한 1의 자리수를 가진 값들을 내림차순으로 정렬을 했는데,, (반례 : 300,30,3) 10, 100단위로 떨어지는 수들은 가장 작은 값들이 먼저 와야하기 때문에 만족을 하지 못했다. 그래서 가장 쉬운 방법은 compare() 함수를 이용해서 Integer타입을 String으로 받아온 후에 s1+s2가 큰 지, s2+s1이 큰지 비교해서 정렬하는 것이다. (ex) 3, 40이 있다면 340이 큰지, 403이 큰지) 사실상 위 코드는 다른분의 코드를 가져온 것이..
이번 문제는 '상'문제에 분류되는 문제였고 처음에 생각하기에는 쉬웠지만 데이터를 한꺼번에 정렬을 해야한다는 생각에 사로잡혀서 제대로 문제를 풀지 못하고 다른 사람의 풀이를 조금 보고 풀었던 문제였다ㅠ (아직도 갈길이 멀다,,) 먼저 위 문제를 분석해봤을 때, 1. genre별 합을 구해서 내림차순으로 정렬한다. 2. 각 genre별 2개의 고유번호를 출력한다. (장르가 1개일 때는 1개 출력) *구현과정 1) genre의 합을 구할 때에는 hashmap의 getorDefault() 함수를 이용해서 카운트를 하고 2) list에 넣어서 collection.sort()를 하거나 compare() 함수를 overwriting해서 내림차순으로 정렬을 한다. 3) genre별로 새로운 hash를 만들어서 genr..