본문 바로가기

dev/코테

숫자 짝꿍

프로그래머스의 숫자 짝꿍 문제 풀었습니다.

 

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