안녕하세요.
오늘은 백준 1284번 집 주소 문제를 풀어보겠습니다.
문제가 구구절절 길지만 간단하게 요약하면
1. 숫자를 입력받는다
2. 입력받은 숫자가 0일 경우 프로그램을 종료한다.
3. 입력받은 숫자가 0이 아닐 경우 너비 계산을 실시한다.
4. 입력받은 숫자중 1은 2의 너비를, 0은 4의 너비를 차지하고, 나머지 숫자들은 3의 너비를 차지한다.
5. 입력받은 숫자의 좌우로 1의 여백이 들어가야 하며, 모든 숫자의 사이에도 1의 여백이 들어간다.
입니다.
입력 예시가 아래와 같습니다.
숫자를 입력하면 너비를 계산해주고,
0이 입력되면 프로그램이 종료됩니다.
풀이 전에 소스코드를 먼저 살펴보겠습니다.
while 1:
num = input()
if num=='0':
break
else:
inner = 1
for i in num:
if i=='1':
inner = inner+3
elif i=='0':
inner = inner+5
else:
inner = inner+4
print(inner)
우선 while문을 이용해 코드를 반복해줍니다.
while 옆에 True 값이 오면 무한 반복되며 0이 아닌 값을 넣으면 True로 인식됩니다.
우리는 입력값이 0일때 반복을 멈춰야 하므로 if문을 이용해 입력값이 0이면 break문을 실행하도록 합니다.
만약 입력값이 0이 아니라면 너비 계산코드를 실행합니다.
저는 inner라는 변수에 너비 값을 넣어줬으며 최초값으로 1을 주어 가장 좌측의 너비를 넣어주었습니다.
이후 for문을 이용해 반복문을 실행하였습니다.
입력값을 쪼개서
만약 쪼개진 입력값이 1이라면 inner 변수에 3을 더하도록,
만약 쪼개진 입력값이 0이라면 inner 변수에 5를 더하도록,
만약 그외의 값이 들어왔다면 inner 변수에 4를 더하도록 하였습니다.
문제에서 지정한 너비 값보다 1씩 더 큰 수를 더해준 이유는 숫자 사이의 여백값이 1이기 때문입니다.
'코딩 > 파이썬' 카테고리의 다른 글
5분 파이썬(1) - 파이썬 소개 (0) | 2023.04.07 |
---|---|
파이썬 클래스 개념 가장 쉽게 이해하기 (2) | 2023.03.21 |
[백준 파이썬] 1267번 휴대폰 요금 (B3) (0) | 2022.10.05 |
[백준 파이썬] 1247번 부호 (B3) (0) | 2022.09.19 |
[백준 파이썬] 1032번 명령 프롬프트 (B1) (0) | 2022.09.15 |