1. 25304 영수증

문제

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

영수증에 적힌,

  • 구매한 각 물건의 가격과 개수
  • 구매한 물건들의 총 금액

을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.

입력

첫째 줄에는 영수증에 적힌 총 금액 가 주어진다.

둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 이 주어진다.

이후 개의 줄에는 각 물건의 가격 와 개수 가 공백을 사이에 두고 주어진다.

출력

구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하지 않는다면 No를 출력한다.

 

x = int(input())
n = int(input())
s = 0

for i in range(n):
	a, b = map(int, input().split())
	s += (a*b)
	
if s == x:
	print('Yes')
else:
	print('No')

 

코드 설명

문제에서 주어진 조건대로 첫 줄에 총 구매금액 x를, 둘째 줄에 구매한 물건 종류의 수 n을 각각 입력받는다. for문에서 사용할 s 또한 0을 할당해서 변수로 지정한다. for문 안에서 변수 s를 생성할 경우 반복문이 실행될 때마다 변수가 새로 만들어진다. a*b의 총합이 아니라 a*b의 가장 마지막 값만 s에 저장되므로 반복문 밖에서 지정해줘야한다. 구매한 물건 종류의 수 n번만큼 반복이 실행되도록  for i in range(n): 을 작성하고 a와 b를 입력받는다. map 함수를 이용해 두 변수를 입력받고 split 메서드로 분할한 다음 int형으로 변환시켰다. 반복문 밖에서 지정한 변수 s에 할당연산자 +=를 사용해 입력받은 a와 b의 곱을 더한다. for문이 n번만큼 반복되며 a, b를 입력받고, a*b가 s에 더해진다. 마지막으로 if 조건문으로 a*b가 n번 더해진 s와 총 구매금액 x가 같으면 Yes를, 다르면 No를 출력하는 조건을 작성한다. 

 

 

2. 25314번 코딩은 체육과목입니다

문제

오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”

혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장할 수 있는 공간이 늘어나는 걸까? 분명 long long long int는 12바이트, long long long long int는 16바이트까지 저장할 수 있는 정수 자료형일 거야!” 그렇게 혜아는 당황하는 면접관의 얼굴을 뒤로한 채 칠판에 정수 자료형을 써 내려가기 시작했다.

혜아가 N 바이트 정수까지 저장할 수 있다고 생각해서 칠판에 쓴 정수 자료형의 이름은 무엇일까?

입력

첫 번째 줄에는 문제의 정수 N 이 주어진다. (4≤ N ≤1000; N 은 4의 배수)

출력

혜아가 N바이트 정수까지 저장할 수 있다고 생각하는 정수 자료형의 이름을 출력하여라.

n = int(input())

for i in range(n // 4):
	print('long', end=' ')
print('int')

 

코드 설명

입력 조건대로 첫 줄에서 n을 입력받는다. for 반복문을 통해 n을 4로 나눈 값만큼 long과 ' '이 출력되고, 반복문이 종료되면 int가 출력되게 했다. 반복 조건이 간단하기 때문에 for문을 사용하지 않고도 정답 코드를 작성할 수 있다. 

print(int(input()) // 4 * 'long ' + 'int')