공부 일지/개인 공부 기록용
자바공부 41일차
Joshbla
2022. 6. 17. 00:59
2022/06/16
- 프로그래머스 코딩테스트 연습 lv.1 [ 완주하지 못한 선수, k번째 수, 모의고사, 체육복 ]
- k번째 수 ( Arrays.copyOfRange(배열,시작,끝) 사용하기 )
- 완주하지 못한 선수( 해시 미사용 - 예제 시간 최대 300ms )
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
String[] all = new String[participant.length+completion.length];
for(int i=0;i<participant.length;i++){
all[i*2] = participant[i];
if(i==participant.length-1) break;
all[i*2+1] = completion[i];
}
Arrays.sort(all);
for(int i=0;i<all.length-1;i++){
if(all[i].equals(all[i+1])){
all[i] = "0";
all[i+1] = "0";
}else if(all[i]!="0" && !all[i].equals(all[i+1])){
answer = all[i];
break;
}else answer = all[i+1];
}
return answer;
}
}
- 완주하지 못한 선수( 해시 사용 - 예제 시간 최대 90ms )
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String,Integer> map = new HashMap<>();
for(int i=0;i<participant.length;i++){
map.put(participant[i],map.getOrDefault(participant[i],0)+1);
}
for(int i=0;i<completion.length;i++){
map.put(completion[i],map.get(completion[i])-1);
}
for(int i = 0; i<participant.length; i++){
if(map.get(participant[i])!=0){
answer = participant[i];
break;
}
}
return answer;
}
}