프로그래머스: 튜플
문제
https://programmers.co.kr/learn/courses/30/lessons/64065
코드
1 | public int[] solution(String s) { |
흐름
- 문자열을 각각 숫자를 저장한 문자열 배열로 만든다. (getStringArray)
- 만든 문자열 배열에 저장된 문자열을 “,”로 나눠서 각각 Integer 배열에 저장하고 그 Integer 배열을 담는 List에 저장한다. (convertStringArrayToIntegerArrayList)
- List에 저장된 Integer 배열을 배열의 길이가 짧은 순으로 sorting 한다. (sortByArraylength)
- 정렬한 list를 돌면서 Integer 배열을 꺼내고 다시 배열을 돌면서 튜플을 저장할 List에 담는데, 이 때 저장하기 전에 이미 List에 저장된 숫자인 경우엔 담을 필요가 없으므로 contain() 를 사용해서 List에 저장되지 않은 숫자만 add 한다.
- List형 이었으므로 문제에 맞게 int 배열 형으로 변환해서 return한다.
- 끝
최다 좋아요 코드
1 | public int[] solution(String s) { |
- 마찬가지로 우선 String을 String[]로 만들고
- 배열 길이 순으로 정렬한 다음에
- 2중 for문을 돌면서 숫자를 배열에 저장하는데,
- Set을 통해 이미 저장된 숫자는 저장하지 않는다.
결과
번호 | 속도 |
---|---|
테스트 1 | 통과 (2.12ms, 52.3MB) |
테스트 2 | 통과 (2.16ms, 52.2MB) |
테스트 3 | 통과 (2.03ms, 50.3MB) |
테스트 4 | 통과 (2.58ms, 52.4MB) |
테스트 5 | 통과 (6.02ms, 52.4MB) |
테스트 6 | 통과 (7.96ms, 50.9MB) |
테스트 7 | 통과 (38.39ms, 53.8MB) |
테스트 8 | 통과 (68.47ms, 61.7MB) |
테스트 9 | 통과 (51.85ms, 57.6MB) |
테스트 10 | 통과 (142.71ms, 62.2MB) |
테스트 11 | 통과 (91.56ms, 65.7MB) |
테스트 12 | 통과 (111.69ms, 74.1MB) |
테스트 13 | 통과 (104.26ms, 72.1MB) |
테스트 14 | 통과 (113.99ms, 74.5MB) |
테스트 15 | 통과 (1.84ms, 50MB) |
테스트 케이스
1 | assertArrayEquals(new int[]{2,1,3,4}, test.solution("{{2},{2,1},{2,1,3},{2,1,3,4}}")); |