backjeon 17

Baekjoon(백준) - 2903 (중앙 이동 알고리즘) | Python

👉 Baekjoon(백준) - 2903 (중앙 이동 알고리즘) N = int(input())print((2**N + 1) ** 2) 이 문제의 핵심은 점의 얼마나 추가되는지 계산하는 것이 아니라, 정사각형 격자의 구조를 파악하는 것이다. 예시)과정이 진행되면서 점의 개수는 다음과 같이 증가한다.단계점의 개수초기 (N=0)41번 수행92번 수행25 핵심 아이디어이 문제는 전체 점의 개수를 직접 세려고 하면 복잡해진다.대신 정사각형 한 변에 존재하는 점의 개수를 먼저 관찰하면 규칙을 쉽게 찾을 수 있다. 초기 상태에서는 한 변에 점이 2개 존재한다.과정을 한 번 수행하면 각 점 사이에 새로운 점이 추가되므로2 → 3 이 된다. 다음 단계에서는 다시 각 점 사이에 점이 추가되어3 → 5가 된다. 이 과정을..

backjeon/Bronze 2026.03.17

Baekjoon(백준) - 5086 (배수와 약수) | Python

while True: a, b = map(int, input().split()) if a == 0 and b == 0: break if b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither") 이 코드는 두 수가 주어졌을 때 약수, 배수 관계를 판단하는 프로그램이다.입력은 여러 줄로 주어지며 0 0 이 입력되면 프로그램이 종료된다. 1. 무한 반복문 while True: 입력이 여러 테스트 케이스로 계속 들어오기 때문에, 종료 조건이 나올 때까지 반복문을 계속 실행한다. 2. 여러 정수 입력 받기a, b = map(int, input..

backjeon/Bronze 2026.03.16

Baekjoon(백준) - 2563 (색종이) | Python

n = int(input())paper = [[0] * 100 for _ in range(100)]for _ in range(n): x, y = map(int, input().split()) for i in range(x, x+10): for j in range(y, y+10): paper[i][j] = 1area = 0for i in range(100): for j in range(100): area += paper[i][j]print(area) 이 코드는 100x 100 크기의 도화지 위에 여러 장의 10x10 색종이를 붙였을 대 검은 영역의 넓이를 구하는 프로그램이다 1. 색종이 개수 입력N = int(input()).붙일 색종이의 개수를..

backjeon/Silver 2026.03.15

Baekjoon(백준) - 10798 (세로읽기) | Python

words = [input().strip() for _ in range(5)]result = ""for j in range(15): for i in range(5): if j 이 코드는 가로로 입력된 5개의 문자열을 세로 방향으로 읽어, 하나의 문자열로 출력하는 프로그램이다. 1. 리스트 컴프리헨션words = [input().strip() for _ in range(5)] 리스트 컴프리헨션을 이용하여 5개의 문자열을 리스트로 저장한다. input() : 문자열 입력strip() : 문자열 앞뒤 공백 제거for _ in range(5) : 5번 반복_ : 반복 변수이지만 사용하지 않을 때 관례적으로 사용하는 표기법예시 입력AABCDDafzz09121a8EWg6P5h3kx 예시 출력 결..

backjeon/Bronze 2026.03.14

Baekjoon(백준) - 2566 (최댓값) | Python

max_num = -1max_row = 0max_col = 0for i in range(9): row = list(map(int, input().split())) for j in range(9): if row[j] > max_num: max_num = row[j] max_row = i+1 max_col = j+1print(max_num)print(max_row, max_col) 1. 최댓값 및 변수 초기max_num = -1 문제에서 입력되는 수는 0이상 100이하의 자연수 이므로, 초기값을 -1로 설정한다.어떤 값이 입력되더라도 첫 비교에서 반드시 갱신된다. 또한, 최댓값이 위치한 좌표를 저장하기 위해 다음 변수도 함께 ..

backjeon/Bronze 2026.03.13

Baekjoon(백준) - 2738 (행열 덧셈) | Python

N, M = map(int, input().split())arr1 = [list(map(int, input().split())) for _ in range(N)]arr2 = [list(map(int, input().split())) for _ in range(N)]for a, b in zip(arr1, arr2): print(*(x+y for x, y in zip(a,b))) 1. 여러 정수 입력 받기N, M = map(int, input().split()) input() : 한 줄 입력 받기split() : 공백을 기준으로 문자열 분리map(int, ...) : 문자열을 정수형으로 변환 2. 리스트 컴프리헨션arr1 = [list(map(int, input().split())) for _ in ..

backjeon/Bronze 2026.03.12

Baekjoon(백준) - 3003 (킹, 퀸, 룩, 비숍, 나이트, 폰) | Python

import syschess = [1,1,2,2,2,8]chess_num = list(map(int, sys.stdin.readline().split()))result = [a-b for a,b in zip(chess, chess_num)]print(*result) 1. 입력 처리import syschess_num = list(map(int, sys.stdin.readline().split())) sys.stdin.readline()은 표준 입력을 빠르게 읽어오는 함수이다.온라인 저지 환경(예: 백준)에서는 입력의 양이 많을 수 있기 때문에 input() 대신 자주 사용된다. split()을 이용해 공백을 기준으로 문자열을 나누고, map(int, ...)을 사용하여 각 값을 정수형으로 변환한다.예를 ..

backjeon/Bronze 2026.03.11

Baekjoon(백준) - 10998 (팰린드롬인지 확인하기) | Python

import sysword = sys.stdin.readline().strip()if word == word[::-1]: print(1)else: print(0) 1. 빠른 입력 처리import sysword = sys.stdin.readline().strip() 파이썬에서 입력을 받을 때 일반적으로 input()을 사용하지만, 백준과 같은 온라인 저지 환경에서는 입력 속도를 높이기 위해 sys.stdin.readline()을 사용하는 경우가 많다.또한, readline()은 문자열 끝에 개행 문자(\n)가 포함되기 때문에 strip()을 사용하여 이를 제거한다. 2. 문자열 슬라이싱word[::-1] 파이썬의 슬라이싱 문법은 다음과 같다.문자열[start : end : ste[] 이때, ..

backjeon/Bronze 2026.03.10

Baekjoon(백준) - 2743 (단어 길이 재기) | Python

import sysword = sys.stdin.readline().strip()print(len(word)) sts.stdin.readline() 사용 시 반드시 .strip()을 붙여야 하는 이유1. '\n' 개행문자sys.stdin.readline()은 이름 그대로 한 줄을 통째로 읽어온다.이때 사용자가 입력을 마차기 위해 누른 엔터(Enter) 키 값인 줄바꿈 문자(\n)까지 포함하여 변수에 저장한다. 예) Hello 입력시input() : 'Hello' (5글자)sys.stdin.readline() : 'Hello\n' (6글자) 2. .strip()이 필요한 이유위 예시처럼 줄 바꿈 문자가 포함되면 다음과 같은 문제가 발생한다.len(word) 출력 시 실제 글자 수 보다 1이 크게 나온다.문..

backjeon/Bronze 2026.03.09

Baekjoon(백준) - 10811 (바구니 뒤집기) | Python

import sysN, M = map(int, sys.stdin.readline().split())basket = list(range(1, N+1))for _ in range(M): i, j = map(int, sys.stdin.readline().split()) basket[i-1:j] = basket[i-1:j][::-1] print(*basket) 1. 빠른 입력 처리import sysN, M = map(int, sys.stdin.readline().split()) 백준과 같은 온라인 저지 환경에서는 입력 데이터의 양이 많을 수 있기 때문에, input() 대신 sys.stdin.readline()을 사용하는 경우가 많다.sys.stdin.readline()은 표준 입력을 빠르게..

backjeon/Bronze 2026.03.08