num = int(input())
result = num
newN=-1
n=0
    
while True:
    if newN == result:
        break
    else:
        a=num//10 # 10의자리 숫자
        b=num%10 # 1의자리 숫자
        c=a+b # 각 자리의 숫자를 더함
        n+=1
        if c//10 == 0: # 그 숫자가 한 자리인 경우의
            newN = b*10+c # 새로운 수
            num = newN
            
        else: # 그 숫자가 두 자리인 경우의
            newN = b*10+(c%10) # 새로운 수
            num = newN
print(n)

 

문제를 풀다가 과정이 헷갈리면 주석을 써가며 차근차근히.

 

 

 

문제: https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 10871번] X보다 작은 수  (0) 2023.01.01
[백준 10807번] 개수 세기  (0) 2023.01.01
[백준 10951번] A+B - 4  (0) 2023.01.01
[백준 10952번] A+B - 5  (0) 2023.01.01
[백준 25304번] 영수증  (0) 2023.01.01
import sys
while True:
    try:
        a, b = map(int, sys.stdin.readline().split())
        print(a+b)
    except:
        break

 

예외처리와 관련된 문제이다.

 

 

 

문제: https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 10807번] 개수 세기  (0) 2023.01.01
[백준 1110번] 더하기 사이클  (0) 2023.01.01
[백준 10952번] A+B - 5  (0) 2023.01.01
[백준 25304번] 영수증  (0) 2023.01.01
[백준 3003번] 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.01.01
import sys

while True:
    a, b = map(int,sys.stdin.readline().split())
    if a == 0 and b == 0:
        break
    else:
        print(a+b)

 

 

 

문제: https://www.acmicpc.net/problem/10952

 

10952번: A+B - 5

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 1110번] 더하기 사이클  (0) 2023.01.01
[백준 10951번] A+B - 4  (0) 2023.01.01
[백준 25304번] 영수증  (0) 2023.01.01
[백준 3003번] 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.01.01
[백준 25083번] 새싹  (0) 2022.06.08
import sys

realM = int(input())
sumN = int(input())
sumM = 0
for i in range(sumN):
    a, b = map(int,sys.stdin.readline().split())
    sumM+=a*b
if realM == sumM:
    print("Yes")
else:
    print("No")

 

반복문으로 여러줄을 input 받을 때 input()으로 받는다면 런타임에러(TypeError)가 발생할 수 있다.

따라서 sys.stdin.readline()을 사용해야한다.

 

 

 

문제: https://www.acmicpc.net/problem/25304

 

25304번: 영수증

준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 10951번] A+B - 4  (0) 2023.01.01
[백준 10952번] A+B - 5  (0) 2023.01.01
[백준 3003번] 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.01.01
[백준 25083번] 새싹  (0) 2022.06.08
[백준 11720번] 숫자의 합  (0) 2022.04.26
king = 1
queen = 1
rook = 2
bishop = 2
knight = 2
pawn = 8
a,b,c,d,e,f = map(int, input().split())
print(king-a, queen-b, rook-c, bishop-d, knight-e, pawn-f)

 

input().split()의 결과의 형태가 list이기 때문에 형변환을 위해 int()로 감싸주면 TypeError가 발생한다.

따라서 여러 개를 입력 받을 때에는 map 함수를 사용하는 것이 편리하다.

 

 

 

문제: https://www.acmicpc.net/problem/3003

 

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰

첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 10952번] A+B - 5  (0) 2023.01.01
[백준 25304번] 영수증  (0) 2023.01.01
[백준 25083번] 새싹  (0) 2022.06.08
[백준 11720번] 숫자의 합  (0) 2022.04.26
[백준 2439번] 별 찍기 - 2  (0) 2022.04.26
print("""         ,r'"7
r`-_   ,'  ,/
 \. ". L_r'
   `~\/
      |
      |
""")

 

 

 

문제 : https://www.acmicpc.net/problem/25083

 

25083번: 새싹

아래 예제와 같이 새싹을 출력하시오.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 25304번] 영수증  (0) 2023.01.01
[백준 3003번] 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.01.01
[백준 11720번] 숫자의 합  (0) 2022.04.26
[백준 2439번] 별 찍기 - 2  (0) 2022.04.26
[백준 2438번] 별 찍기 - 1  (0) 2022.04.21
n=int(input())
num=input()
sum=0
for i in range(n):
    a=int(num[i])
    sum+=a
print(sum)

 

 

index는 0부터 시작함을 인지하고 range 설정에 조심하도록 하자.

 

 

 

문제 : https://www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 3003번] 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.01.01
[백준 25083번] 새싹  (0) 2022.06.08
[백준 2439번] 별 찍기 - 2  (0) 2022.04.26
[백준 2438번] 별 찍기 - 1  (0) 2022.04.21
[백준 11022번] A+B - 8  (0) 2022.04.21
n=int(input())
for i in range(1,n+1):
    star='*'*i
    print(star.rjust(n))

 

저번 별 찍기와 달리 이번에는 오른쪽을 기준으로 정렬한 별을 찍어야 한다. 이에 필요한 것이 rjust()이다.

 

 

 

문제 : https://www.acmicpc.net/problem/2439

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 25083번] 새싹  (0) 2022.06.08
[백준 11720번] 숫자의 합  (0) 2022.04.26
[백준 2438번] 별 찍기 - 1  (0) 2022.04.21
[백준 11022번] A+B - 8  (0) 2022.04.21
[백준 11021번] A+B - 7  (0) 2022.04.21
n=int(input())
for i in range(1,n+1):
    print("*"*i)

 

 

 

 

문제 : https://www.acmicpc.net/problem/2438

 

2438번: 별 찍기 - 1

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 11720번] 숫자의 합  (0) 2022.04.26
[백준 2439번] 별 찍기 - 2  (0) 2022.04.26
[백준 11022번] A+B - 8  (0) 2022.04.21
[백준 11021번] A+B - 7  (0) 2022.04.21
[백준 2742번] 기찍 N  (0) 2022.04.21
import sys
n=int(input())
for i in range(1,n+1):
    n1,n2=map(int,sys.stdin.readline().split())
    print("Case #"+str(i)+": "+str(n1)+" + "+str(n2)+" = "+str(n1+n2))

 

 

 

문제 : https://www.acmicpc.net/problem/11022

 

11022번: A+B - 8

각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 2439번] 별 찍기 - 2  (0) 2022.04.26
[백준 2438번] 별 찍기 - 1  (0) 2022.04.21
[백준 11021번] A+B - 7  (0) 2022.04.21
[백준 2742번] 기찍 N  (0) 2022.04.21
[백준 2741번] N 찍기  (0) 2022.04.21
import sys
n=int(input())
for i in range(1,n+1):
    n1,n2=map(int,sys.stdin.readline().split())
    print("Case #"+str(i)+": "+str(n1+n2))

 

자료형의 형태가 문자열로 같아야 +로 더해서 문장을 만들 수 있다.

그러므로 int형인 i와 n1+n2을 문자열로 변환시켜줘야 한다.

참고로 백준 문제들은 띄어쓰기도 일치해야 정답으로 처리되기 때문에 출력할 때 주의하도록 하자.

 

 

 

문제 : https://www.acmicpc.net/problem/11021

 

11021번: A+B - 7

각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 2438번] 별 찍기 - 1  (0) 2022.04.21
[백준 11022번] A+B - 8  (0) 2022.04.21
[백준 2742번] 기찍 N  (0) 2022.04.21
[백준 2741번] N 찍기  (0) 2022.04.21
[백준 15552번] 빠른 A+B  (0) 2022.04.20
import sys
n=int(sys.stdin.readline())
for i in range(n,0,-1):
    print(i)

 

range(n,0,-1)을 이용한 for문은 n부터 0+1=1까지 1줄어들며 print 시키는 구문이다.

 

 

 

문제 : https://www.acmicpc.net/problem/2742

 

2742번: 기찍 N

자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 11022번] A+B - 8  (0) 2022.04.21
[백준 11021번] A+B - 7  (0) 2022.04.21
[백준 2741번] N 찍기  (0) 2022.04.21
[백준 15552번] 빠른 A+B  (0) 2022.04.20
[백준 8393번] 합  (0) 2022.04.20

+ Recent posts