공공채
공대생의 공부기록 채널, 공공채
공공채
전체 방문자
오늘
어제
  • 분류 전체보기 (27)
    • 자바 프로그래밍 (5)
    • 파이썬 프로그래밍 (21)
    • MySQL (1)
    • 오라클 DBA 기록 (0)

블로그 메뉴

  • 홈
  • 태그

태그

  • 변수
  • 25304
  • 반복문
  • 자바
  • 11022
  • 2480
  • 백준
  • 리스트
  • 단계별
  • SWEA
  • 10952
  • 파이썬
  • 공공채
  • 알고리즘
  • 25314

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
공공채

공대생의 공부기록 채널, 공공채

[백준 단계별로 풀어보기] 반복문 단계 3(8393)~7(11021). 합 ~ A+B - 7
파이썬 프로그래밍

[백준 단계별로 풀어보기] 반복문 단계 3(8393)~7(11021). 합 ~ A+B - 7

2024. 1. 16. 21:12

8393. 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

 

입력_

첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.

 

출력_

1부터 n까지 합을 출력한다.

 

[문제 풀이]

n = int(input())

total = 0
for i in range(1, n+1):
    total += i
    
print(total)

25304. 영수증

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

영수증에 적힌,

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

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

 

입력_

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

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

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

 

출력_

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

 

[문제 풀이]

# 총 금액과 물건 종류 수(반복횟수) 입력받기
x = int(input())
n = int(input())
total = 0

# n만큼 반복하며 a, b를 입력받고 곱한 값을 total에 저장
for _ in range(n):
    a, b = map(int, input().split())
    total += a * b

# 조건문을 활용해 각 x와 total 비교
# if x == total:
#     print('Yes')
# else:
#     print('No')

# 삼항 연산자    
print('Yes') if x == total else print('No')

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

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

혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 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())

'''방법 1'''
# 4의 배수이므로 4로 나눈 몫을 long에 곱하고 int 더하고 출력
# x = 'long ' * (n//4) + 'int'
# print(x)

'''방법 2'''
# 위와 동일하지만 *를 사용않고 반복문과 +를 사용해 형식에 맞게 출력
long = ''
for _ in range(n//4):
    long += 'long '

print(long + 'int')

15552. 빠른 A+B

본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.

Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.

또한 입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다.

 

입력_

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

 

출력_

각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.

 

[문제 풀이]

# 모듈 선언
import sys
# 이름이 길어서 변수에 저장
input = sys.stdin.readline
# 반복문을 사용해 계산
for _ in range(int(input())):
    a, b = map(int, input().split())
    print(a+b)

11021. A+B - 7

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

 

입력_

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

 

출력_

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

 

[문제 풀이]

# 반복문을 사용해 계산
# (형식에 맞게 출력해야하므로 f-string 포맷팅 사용)
for i in range(1, int(input())+1):
    a, b = map(int, input().split())
    print(f'Case #{i}:', a+b)

 

반응형
저작자표시 (새창열림)
    '파이썬 프로그래밍' 카테고리의 다른 글
    • [백준 단계별로 풀어보기] 반복문 단계 8(11022)~12(10951). A+B - 8 ~ A+B - 4
    • [백준 단계별로 풀어보기] 조건문 단계 4(14681)~7(2480). 사분면 고르기 ~ 주사위 세개
    • [SWEA]4869~4873. [파이썬 S/W 문제해결 기본] 4일차 종이붙이기 ~ 반복문자 지우기
    • [SWEA]4864~4865. [파이썬 S/W 문제해결 기본] 3일차 String 문자열 비교 ~ 글자 수

    티스토리툴바