알고리즘 문제 풀이 / 프로그래머스 (programmers) - 코딩테스트 1번
2021년 8월 21일에 프로그래머스에서 열리는 와디즈 코딩챌린지 신청을 하고, 오늘 그 시험을 봤다. 경력 3년차 이상부터 뽑는 챌린지라 취준생인 나는 뽑히진 못하지만 그냥 신청해서 봤다,,ㅎ 문제는 총 3문제로 3시간 이내에 풀면 되는 시험이었는데 나에겐 나름 생각해야할 어려운 문제였어서 2시간 20분 정도 걸렸다. 오늘은 그 첫 문제 풀이를 해보려고 한다.
문제 설명
저작권의 문제로 문제설명은 생략하겠습니다.
문제 풀이
동 호수, 비밀번호를 hashmap에 넣는다.
s를 split으로 # 마다 끊어준다.
s가 hashmap에 동 호수와 일치하면 answer++을 해준다.
s가 무조건 동 호수, 비밀번호 순서가 아니기 때문에 이 문제는 더욱 간단해졌다. 무조건 처음 가져오는 것이 동이 맞는지 부터 확인하고, 맞다면 비밀번호가 일치하는지 확인하고 아니라면 다시 동이 맞는지를 확인하면 되는 간단한 문제였다.
public static int solution(int[][] passwords, String s) {
int answer = 0;
int size = passwords.length;
HashMap<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < size; i++) {
map.put(passwords[i][0], passwords[i][1]);
}
String[] anstr = s.split("#");
int[] ans = Arrays.stream(anstr).mapToInt(Integer::parseInt).toArray();
size = ans.length;
for(int i = 0; i < size; i++) {
if(map.containsKey(ans[i])) {
if(i+1 < size && map.get(ans[i]).equals(ans[i+1])) {
answer++;
i++;
}
}
}
return answer;
}
반응형
'후기 및 회고 > 코딩테스트 리뷰' 카테고리의 다른 글
이마트 코딩테스트 후기 (0) | 2021.10.11 |
---|---|
[프로그래머스(programmers)] (2021 와디즈 코딩챌린지) 3번 : we make CODE #better (0) | 2021.08.26 |
[프로그래머스(programmers)] (2021 와디즈 코딩챌린지) 2번 : we make CODE #better (0) | 2021.08.24 |
네이버 웹툰 2차 과제테스트 (0) | 2021.07.10 |
[프로그래머스(programmers)] 네이버 웹툰 1차 코딩테스트 합격 후기 (0) | 2021.07.07 |
댓글