프로그래밍/파이썬 python

단계별로 풀어보기 3 - 반복문(2)

idealtrue 2023. 7. 23. 22:28
728x90

문제번호 25304번 영수증

 

첫째 줄에 총금액 X, 둘째 줄에 구매한 물건의 종류수 N, 이후 N개의 줄에는 각 물건의 가격(a) 개수(b)를 입력한다.

구매한 물건들의 가격과 개수로 계산한 총금액(sigma(a*b))이 X와 같으면 Yes를 출력해야 한다. 만약 다르면 No를 출력해야 한다.

 

답안 :

1  X = int(input())
2  import sys
3  N = int(input())
4  total = 0
5  for i in range(N):
6      a, b = map(int,sys.stdin.readline().split())
7      total += a*b
8  if total == X :
9      print('Yes')
10 else:
11     print('No')

 

comment : 

# 총금액 X를 정수형으로 받는다.

# 빠른 처리를 위해서 sys모듈을 불러오고, 개수 N을 정수형으로 받는다.

# sigma(a*b)의 합을 위한 변수 total을 설정해준다.

# N개를 차례대로 작성하고, a*b값을 total에 추가해서 더해주도록 for 반복문을 설정해준다.

# total과 X 가 같은 경우와 아닌 경우를 조건문을 통하여 설정해준다.

 

----------------------------------------------------------

 

문제번호 25314번 코딩은 체육과목입니다

 

정수 N (4 ≤ N ≤ 1000, N은 4의 배수)이 입력되면 N//4의 개수만큼 long을 출력하고,  마지막에 int를 출력한다.

 

답안 :

1 N = int(input())
2 count = N // 4
3 for i in range(count):
4     print('long', end=' ')
5 print('int')

 

comment :

# N을 정수형으로 받아주고, long을 입력할 변수 count를 설정해준다.

# count만큼 long을 출력하도록 해준다. print() 함수는 마지막에 '\n'이 있는 것이 기본값이기 때문에 붙여 쓰고 한 칸 띄우기 위해서 end=' '를 설정해주어야 한다.

# 그렇게 된다면 마지막 long을 쓰고 한 칸이 띄워져 있는 상태이므로 별다른 조치 없이도 for구문을 벗어나 print를 해주기만 하면 마지막에 붙여 쓸 수 있는 상태가 된다.

 

----------------------------------------------------------

 

문제번호 15552번 빠른 A + B

 

테스트케이스의 개수 T(T는 최대 1,000,000)가 입력된다. 정수 A B(A, B는 1 이상 1,000 이하)가 입력된다. 그러면 각 테스트케이스마다 한 줄에 하나씩 순서대로 출력해야 한다.

 

답안 : 

1 T = int(input())
2 import sys
3 for i in range(T):
4     A, B = map(int,sys.stdin.readline().split())
5     print(A+B)

 

comment : 

# sys 모듈을 이용하여 시간을 절약하는 코드이다.

# 같은 문제를 어제 풀었는데, 내가 어제 했던 코드(리스트를 이용한 방식)를 이 문제에 적용했더니 시간 초과가 발생하였다.

# 이를 통해 sys모듈로 시간처리를 줄일 수 있다는 것을 알았다.

 

728x90