반응형
이문제는 카카오톡의 들어오고 나가고에 대한 배열을 출력하는 문제인데,
조건으로 아이디에 따라 별명이 바뀌면 바뀐 최종별명으로 출력을 해주어야 한다...
따라서 해시맵을 사용해서 키와 값으로 아이디와 별명을 저장한 후
아이디를 이용해서 값을 꺼내온 후 들어오고 나간것에 대해 배열에 저장해주었다...
테스트에선 통과했는데,
제출 후 채점하기를 하면 모두 런타임 에러가 난다.............무슨일이지 진짜 ㅠ.ㅠ 더도전...
import java.util.*; class Solution { HashMap<String, String> hm = new HashMap<String, String>(); int count = 0; public String[] solution(String[] record) { for(int i=0; i<record.length; i++){ if(record[i].startsWith("Enter")){ //들어온 값으로 우선 저장 hm.put(record[i].substring(6,record[i].lastIndexOf(' ')), record[i].substring(record[i].lastIndexOf(' ')+1, record[i].length())); } if(record[i].startsWith("Change")){ //바뀐값으로 다시 저장 hm.put(record[i].substring(7,record[i].lastIndexOf(' ')), record[i].substring(record[i].lastIndexOf(' ')+1, record[i].length())); count ++; } } String[] answer = new String[record.length-count]; for(int i=0; i<record.length; i++){ String back = talk(record[i]); if(back.equals("0")){ continue; }else{ answer[i] = back; } } return answer; } public String talk(String str){ if(str.startsWith("Enter")){ String id = hm.get(str.substring(6, str.lastIndexOf(' '))); return id+"님이 들어왔습니다."; } else if(str.startsWith("Change")){ return "0"; }else{ String id = hm.get(str.substring(6, str.length())); return id+"님이 나갔습니다."; } } } |
반응형
'알고리즘 > 알고리즘(java,프로그래머스1,2단계위주)' 카테고리의 다른 글
소수만들기 (0) | 2021.09.19 |
---|---|
키패드 누르기 (0) | 2021.09.17 |
숫자 문자열과 영단어 (0) | 2021.09.17 |
문자열 압축 (0) | 2021.09.17 |
신규 아이디 추천 (0) | 2021.09.17 |