-
[프로그래머스] 방금그곡 (2018 KAKAO BLIND RECRUITMENT)ALGORITHM/PROGRAMMERS 2021. 2. 11. 12:55
programmers.co.kr/learn/courses/30/lessons/17683
코딩테스트 연습 - [3차] 방금그곡
방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV,
programmers.co.kr
2021-02-11
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263import java.util.ArrayList;public class Solution17683 {public static String solution(String m, String[] musicinfos) {String answer = "";int prevTime = 0;ArrayList<String> music = new ArrayList<>();int index = 0;for(int k = 0; k < m.length(); k++) {char ch = m.charAt(k);if(ch == '#') {music.set(index-1, music.get(index-1)+ch);} else {music.add(String.valueOf(ch));index++;}}for(int i = 0; i < musicinfos.length; i++) {String info[] = musicinfos[i].split(",");int time = (Integer.parseInt(info[1].split(":")[0])*60 + Integer.parseInt(info[1].split(":")[1]))- (Integer.parseInt(info[0].split(":")[0])*60 + Integer.parseInt(info[0].split(":")[1]));ArrayList<String> list = new ArrayList<>();int idx = 0;for(int k = 0; k < info[3].length(); k++) {char ch = info[3].charAt(k);if(ch == '#') {list.set(idx-1, list.get(idx-1)+ch);} else {list.add(String.valueOf(ch));idx++;}}for(int k = 0; k <= time - music.size(); k++) {int tmp = k;boolean flag = false;for(int j = 0; j < music.size(); j++) {if(list.get(tmp++%list.size()).equals(music.get(j))) continue;else{flag = true;break;}}if(!flag) {if(prevTime < time) {prevTime = time;answer = info[2];}}}}if(("").equals(answer)) return "(None)";return answer;}public static void main(String[] args) {String m = "ABC";String mu[] = {"12:00,12:14,HELLO,C#DEFGAB", "13:00,13:05,WORLD,ABCDEF"};System.out.println(solution(m, mu));}}cs #문제풀이
1. m과 musicinfo의 음을 끊어서 각각 music과 list에 넣었다.
2. 두 개의 list들을 한 칸씩 비교하면서 맞는 것이 있는지 찾았다.
3. prevTime을 주어서, 여러개의 음악이 있는 경우 라디오 길이를 이용하여 비교하였다. 길이가 같은 경우 먼저 들어온 음악을 출력하라는 조건도 있는데, 어차피 순서대로 체크해서 신경쓰지 않았다.
깔끔한 방법은 아닌 것 같다..
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 기둥과 보 설치 (2020 KAKAO BLIND RECRUITMENT) (0) 2021.02.11 [프로그래머스] n진수 게임 (2018 KAKAO BLIND RECRUITMENT) (0) 2021.02.11 [프로그래머스] 파일명 정렬 (2018 KAKAO BLIND RECRUITMENT) (0) 2021.02.09 [프로그래머스] 메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.02.04 [프로그래머스] 합승 택시 요금 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.01.31