프로그래머스의 숫자 짝꿍 문제 풀었습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/131128
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제에 대한 설명은 위의 링크에서 확인하시면 됩니다.
이 문제를 풀려면 3가지를 해결해야 하는데
첫 번째 RuntimeException입니다.
RuntimeException이 발생하는 이유는 형변환을 자주 하기 때문에 일어나서 형변환을 최대한 줄여야 합니다.
그래서 저는 char을 int로 변환할 때 "Character.getNumericValue"을 사용했습니다.
두 번째 중복되는 숫자의 개수를 구할 때 X와 Y 각 숫자의 중복 개수의 평균으로 하는 게 아니라 최솟값으로 해야 합니다.
문제를 자세히 읽어보면 평균으로 하는 게 아니라 중복되는 개수를 기준을 제시했기 때문입니다.
마지막 세 번째는 가장 높은 수부터 출력해야 하는 것입니다.
저는 맨 처음에 Map이나 List로 풀려고 했는데
0~9까지의 숫자 중복 개수를 저장하는 배열을 하나 만들었습니다.
위의 소스 코드에서 cntArr이라는 배열에 중복 개수를 저장했는데
각 인덱스는 숫자 0~9를 가리키고, 각 인덱스에 저장되는 값은 중복되는 숫자(횟수)입니다.
이렇게 함으로써 인덱스 9부터 0까지 하나씩 StringBuffer에 추가하면 최댓값을 구할 수 있습니다.
이 3가지 문제만 해결하면 쉽게 문제를 풀 수 있습니다.
'dev > 코테' 카테고리의 다른 글
성격 유형 검사하기 (0) | 2022.12.15 |
---|---|
주차 요금 계산 (0) | 2022.11.10 |
콜라 문제 (0) | 2022.11.07 |
푸드 파이트 대회 (0) | 2022.11.07 |
Max area of island (0) | 2020.01.27 |