BOJ 11576번(https://www.acmicpc.net/problem/11576)을 풀며.
.
.
.
진법 변환(https://ballenabox.tistory.com/6)에서 사용했던 방법을 어찌저찌 굴리면 될 것 같다.
예제 입력1
17 8
2
2 16
1단계 : 17진법 2자리 숫자, "2 16"을 10진법으로 변환
2단계 : 10진법으로 변환된 숫자를 8진법으로 변환
3단계 : 변환된 8진법을 자릿수별로 출력
우선...이전 글에서 리스트의 pop()을 사용했는데, 이것을 쓰면 변환할 자릿수의 index를 동적으로 작성할 필요가 없다.
마지막 index가 낮은 자릿수니, index를 -1로 잡아 낮은 자릿수부터 변환시킨다(1단계).
-> sum += arr[-1] * (17**i) arr.pop(-1)
sum을 8진법으로 변환시킨다(2단계).
-> 10진법 수를 8로 나눈 첫 계산의 나머지는 8진수의 가장 낮은 자릿수가 나온다.
몫을 다시 8로 나누면 아래에서 2번째 자릿수가 나온다.
이 과정을 반복하면 결과 리스트의 앞에서부터 8진수의 낮은 자릿수가 채워진다.
결과 리스트를 역으로 출력하면 8진수 형태가 출력된다.
.
.
.
리스트의 출력에 있어서 양식이 필요할 때, 매번 반복문을 쓰기엔 번거로워 쓰이는 것이 join 함수다.
"구분자".join(리스트)의 형태로 사용한다. 문자열 출력에 사용함에 주의한다.
'코딩 깔짝' 카테고리의 다른 글
[Python] 21.07.11 : BOJ 11652 외 (0) | 2021.07.13 |
---|---|
[Python] 21.07.11 : BOJ 10825 + 빠른 출력 (0) | 2021.07.11 |
[Python] 21.07.09 : BOJ 1158 (0) | 2021.07.10 |
[Python] 21.07.08 : BOJ 10989 (0) | 2021.07.08 |
[Python] 21.07.07 : 2차원 리스트의 정렬 (0) | 2021.07.07 |
댓글