티스토리 뷰
문제 출처: https://www.acmicpc.net/problem/1212
1212번: 8진수 2진수
첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다.
www.acmicpc.net
간단히 해결할 수 있는 B3문제인 줄 알았지만 은근 많이 헤맸다..
물론 문제를 제대로 읽지 못한 부분도 있지만 공식을 다시 생각해내랴 등등 머리가 복잡해졌다.
풀이로 들어가서, 두 가지 풀이 방식이 있다. 8진수 → 10진수 → 2진수로 할 것인가, 아니면 바로 8진수 → 2진수로 할 것인가.
솔직히 10진수로 바꿔서 다시 2진수로 나타낸다는 방식은 생각해내지 못했고 바로 2진수로 변환하는 방식을 선택했다.
초기 의사 코드는,
1. 각 자릿수를 하나씩 분리
2. 자릿수를 2번씩 나머지를 구하면서 더해주고 마지막에 몫을 더해준다. 여기서 각 자릿수는 매번 몫으로 대치된다.(n/=2)
2-1. 그리고 이런 값들을 ans라는 변수에 저장.
3. StringBuilder에 변수에 ans를 덧붙인다.
이렇게 구성했지만 문제를 제대로 파악하지 못한 필자는 0일 경우에는 미쳐 생각하지 못해서 첫 번째 시도에 실패를 확인했다.
다음은 0이 아닌 숫자가 입력으로 들어왔을 때, 앞 시작 숫자가 0이면 안 되는 것이다..
다시 이렇게 우선 시작이 0 인 부분은 2로 바꿔주고, sb변수에 다시 값을 넣어주었다.
'알고리즘' 카테고리의 다른 글
백준 - ⚾ (0) | 2021.06.10 |
---|---|
백준 - 공주님을 구해라 (0) | 2021.06.07 |
프로그래머스 - 게임 맵 최단거리 (0) | 2021.06.06 |
백준 - 연구소2 (0) | 2021.06.05 |
백준 - 미로 탈출 (0) | 2021.06.03 |