백준
[백준 10952번-파이썬/Python] A+B - 5
http://acmicpc.net/problem/10952 {코드} while True: a, b = map(int, input().split()) if a == b == 0: break print(a+b) {설명} 이 문제는 while문을 이용한 문제로 입력의 두 숫자가 0, 0이 아닐 때까지 두 숫자의 합을 출력하는 문제입니다. while문과 for문의 차이를 간단히 설명하면 for문은 반복 횟수를 알때, while문은 어떤 조건에 부합할 때까지 반복할 때 사용합니다.
[백준 10871번-파이썬/Python] X보다 작은 수
http://acmicpc.net/problem/10871 {코드} _, x = map(int, input().split()) for data in map(int, input().split()): if data < x: print(data, end=' ') {설명} 반복문과 조건문을 같이 사용하는 문제로 쉽게 풀 수 있는 문제이다. 한 가지 알아둘 것은 map함수는 iterable로 반복문에서 한 값씩 가져오는 것이 가능하다는 것이다. *print문은 기본적으로 \n을 실행하지만 end=을 통해 마지막에 붙일 문자열을 지정할 수 있다.
[백준 2439번-파이썬/Python] 별 찍기 - 2
http://acmicpc.net/problem/2439 {코드} n = int(input()) for i in range(1, n+1): print(' '*(n-i) + '*'*i) {설명} 이 문제도 지난 글과 같이 반복문의 전형적인 문제인 별 출력 문제입니다. 타 언어라면 이중 반복문을 사용해야 할 문제지만 파이썬의 * 연산자로 쉽게 풀 수 있습니다. 이 문제는 n번 줄에 n개의 별(*)을 출력하는 문제인데, 각 줄에 별을 출력하기 전에 공백이 있다는 걸 알 수 있습니다. 공백의 규칙은 매우 간단한데요, 바로 (총 줄의 수 - 현재 줄이 번호) 입니다. 예를 들어 총 줄의 수가 5라면 첫째줄에는 공백 4개와 별 1개, 둘째줄에는 공백 3개와 별 2개가 되는 것입니다. 다른 규칙으로는 한 줄에 공백의..
[백준 2438번-파이썬/Python] 별 찍기 - 1
http://acmicpc.net/problem/2438 {코드} for i in range(1, int(input())+1): print('*'*i) #----# [print('*'*i) for i in range(1, int(input())+1)] {설명} 별 찍기는 반복문을 공부할 때 가장 기본적인 문제로 피라미드, 다이아몬드, 삼각형 등 여러 유형이 있습니다. 이 문제는 그 중 가장 쉬운 삼각형 문제로 n번 줄에 n개의 별(*)을 출력하는 문제입니다. 다른 언어라면 이중 반복문을 사용할 문제지만 파이썬은 * 연산자를 사용하면 쉽게 풀 수 있습니다.
[백준 11022번-파이썬/Python] A+B - 8
http://acmicpc.net/problem/11022 {코드} for i in range(1, int(input())+1): a, b = map(int, input().split()) print(f'Case #{i}: {a} + {b} = {a+b}') {설명} 이 문제도 전의 A+B -7 번 문제처럼 아름답게 출력하는 문제입니다. 변수에 입력을 저장한다음 현재 테스트 케이스의 번호와 덧셈 식을 출력하면 됩니다.
[백준 11021번-파이썬/Python] A+B - 7
http://acmicpc.net/problem/11021 {코드} for i in range(1, int(input())+1): print(f'Case #{i}:',sum(map(int, input().split()))) {설명} 이 문제는 다른 A+B와 유사하지만 해당 덧셈이 몇 번째 덧셈인지 출력을 해 아름다운 출력을 하는 문제입니다. 코드는 다른 문제들과 거의 동일합니다.
[백준 2742번-파이썬/Python] 기찍 N
http://acmicpc.net/problem/2742 {코드} for i in range(int(input()), 0, -1): print(i) #--리스트 컴프리헨션 사용--# [print(i) for i in range(int(input()), 0, -1)] {설명} 이 문제는 백준 2741번 N 찍기 문제의 반대인 문제로 N부터 1까지의 수를 내림차순으로 한줄에 한개씩 출력하는 문제입니다. 여기서 range함수는 (시작값, 끝나는 값, 변화량)의 형태를 인자로 가지는데 시작값은 기본값 0을, 변화량은 기본값 1을 가지고 있습니다. 그렇기에 n에서 시작해 0까지 m(양수)씩 감소하는 range함수는 다음과 같습니다. range(n, -1, -m)
[백준 2741번-파이썬/Python] N 찍기
http://acmicpc.net/problem/2741 {코드} for i in range(1, int(input())+1): print(i) #--리스크 컴프리헨션 사용--# [print(i) for i in range(1, int(input())+1)] {설명} 이 문제는 백준 8393번 합 문제와 굉장히 유사한 문제로 1부터 N까지의 값을 각각 한줄에 한개씩 출력만 하면 되는 문제입니다.
[백준 15552번-파이썬/Python] 빠른 A+B
http://acmicpc.net/problem/15552 {코드} import sys.stdin.readline input = sys.stdin.readline for _ in range(int(input()): print(sum(map(int, input().split())) {설명} 이 문제의 설명을 보면 입출력이 느리면 시간 초과가 날 수 있다고 명시되어 있습니다. 그리고 파이썬으로는 기본 함수인 input보다는 sys 라이브러리의 sys.stdin.readline 함수를 사용하는 것을 추천한다고 되어있습니다. 그러면 왜 input 대신 저 긴 함수를 쓰라고 할까요? 당연하지만 저 긴 함수가 더 빠르게 처리하기 때문입니다. 간단히 설명하면 input에는 문자열 파라미터를 넣을 수 있는데 이 파라미..
[백준 8393번-파이썬/Python] 합
http://acmicpc.net/problem/8393 {코드} ans = 0 for i in range(1, int(input())+1): ans += i print(ans) #----# n = int(input()) print(n(n+1)//2) {설명} 1부터 n까지의 합을 구하는 문제이므로 1에서 n+1까지 반복하고 반복할 때마다 총합을 저장하는 변수에 더해주면 됩니다.(보는 게 빠름) 그와 별개로 시그마를 배우셨다면 1에서 N까지의 합은 n(n+1)/2으로 구할 수 있다는 것을 그대로 코드로 옯겨도 됩니다.