문제
https://school.programmers.co.kr/learn/courses/30/lessons/70129
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 이해 && 풀이
이번 문제의 가장 중요한 점은 이진법을 연속해서 사용하고 결과로 나온 이진법을 또 다시 사용한다는 것이다
즉, 재귀적인 방식으로 풀어야한다는 것이다.
그래서 처음에는 메소드를 하나 만들어서 사용하려고 했지만 어떻게 해당 메소드를 계속해서 사용할 수 있을지 고민이 많이 되었다. 때문에 다른 방식을 찾아야했다
하지만 이 방식은 문제가 생겼다. 프로그래머스의 테스트 9 ~ 11을 통과하지 못했다...이유는 도저히 모르겠다 ㅠㅠ
그래서 Java에서 제공하는 toBinaryString의 메소드를 사용하고자 했다.
- 참고로 이진법으로 변한 값은 String으로써 반환되어야 한다.
그렇게 되면서 내가 만든 이진법 변환 메소드는 지워지고 s의 값 또한 따로 저장하는 방식이 필요가 없어졌다.
코드를 해석해보자면
- s는 1이라는 String값을 만나기 전까지 반복된다. count는 1의 갯수를 뜻하게 되면서 이것을 나중에 이진법으로 바꾸어 다시 적용하게 된다.
- answer의 값은 총 두 개로 new int[2]해주었고 0번째 인덱스는 반복한 횟수, 1번째 인덱스는 반복된 횟수를 지나오며 String값에 있는 0 의 갯수이다.
'코딩테스트 > 🧮 프로그래머스' 카테고리의 다른 글
🧮 [프로그래머스] 멀리 뛰기 (Java) - DP 문제 (0) | 2023.09.26 |
---|---|
🧮 [프로그래머스] N개의 최소 공배수 (Java) ft.유클리드 호재법 (0) | 2023.09.26 |
🧮 [프로그래머스] 폰켓몬 (JAVA) (0) | 2023.08.14 |
🧮 [프로그래머스] 푸드파이트 대회(JAVA) (0) | 2023.08.12 |
🧮 [프로그래머스] 1차 비밀지도 (0) | 2023.08.11 |