전체 글 219

[Baekjoon/Python] 1018번: 체스판 다시 칠하기 - 효과는 굉장했다!

1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 알고리즘 분류 브루트포스 알고리즘 SOLUTION import sys N, M = map(int, sys.stdin.readline().split()) chess = [sys.stdin.readline().rstrip() for _ in range(N)] # 체스판 형성 min_cnt = [] for i in range(N-7): # 브루트포스 적용, 체스판 8x8 크기가 나올 수 있는 모든 경우의 수 탐색 for j in range(M-7): cnt1 ..

[Baekjoon/Python] 11050번: 이항 계수 1 - 효과는 굉장했다!

11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net SOLUTION from math import factorial # factorial 함수를 사용하기 위해 math 모듈 import N, K = map(int, input().split()) binoary = factorial(N) // (factorial(K) * factorial(N - K) print(binoary) ※ factorial(계승) 1부터 어떤 양의 정수 n까지의 정수를 모두 곱한 것을 말하며 n!로 나타낸다.

[Baekjoon/Python] 2231번: 팰린드롬수 - 효과는 굉장했다!

1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net SOLUTION while True: num = input() if num == '0': break if num[:] == num[::-1]: # 슬라이싱을 이용해 거꾸로 읽어도 같은지 확인 print('yes') else: print('no')

[Baekjoon/Python] 15829번: Hasing - 효과는 굉장했다!

15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net SOLUTION L = int(input()) hasing = input() cnt = 0 ans = 0 alphabet = {'a': 1, 'b': 2, 'c':3, 'd':4, 'e':5, 'f':6, 'g':7, 'h':8, 'i':9,'j':10, 'k':11, 'l':12, 'm':13, 'n':14 ,'o':15, 'p':16, 'q':17, 'r':18, 's':19, 't':20, 'u':21, 'v':22, 'w':23, 'x':24, 'y':2..

[Baekjoon/Python] 2775번: 부녀회장이 될테야 - 효과는 굉장했다!

2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net SOLUTION t = int(input()) for _ in range(t): k = int(input()) n = int(input()) people_list = [x for x in range(1, n+1)] #list comprehension 이용 for floor in range(k): for row in range(1, n): people_list[row] += people_list[row-1] print(people_list[-1])

[Baekjoon/Python] 2231번: 분해합 - 효과는 굉장했다!

2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net SOLUTION N = int(input()) for i in range(1,N+1): num = i for j in str(i): num += int(j) if num == N: print(i) break if i == N: print(0)

[Baekjoon/Python] 10250번: ACM 호텔 - 효과는 굉장했다!

10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net SOLUTION T = int(input()) cnt = 1 for i in range(T): H, W, N = map(int, input().split()) while N > H: # 호수 설정을 위한 코드 N -= H cnt += 1 cnt = str(cnt).zfill(2) # 문자열 앞을 0으로 채워 01 02 03 ... 99 형태로 나타낼 수 있게 만듬 N = str(N).zfill(2) print(int(N+cnt)) # int형으로 형 ..

[Baekjoon/Python] 4153번: 직각삼각형 - 효과는 굉장했다!

4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net SOLUTION while True: num = list(map(int, input().split())) if num[0] == num[1] == num[2] == 0: # 0 0 0 이 입력되면 종료 break else: num.sort() # 정렬을 하는 이유 작은 두 수의 제곱의 합은 가장 큰 수 제곱의 합이기 때문 if num[0] ** 2 + num[1] ** 2 == num[2] ** 2: # 피타고라스의 정리 이용 print("right") else: print("w..

[Baekjoon/Python] 1085번: 직사각형에서 탈출 - 효과는 굉장했다!

1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net SOLUTION x,y,w,h = map(int, input().split()) print(min(x, y, w-x, h-y)) # 직사각형 4변 중 가장 가까운 거리 출력

[Baekjoon/Python] 1546번: 평균 - 효과는 굉장했다!

1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net SOLUTION N = int(input()) score = list(map(int, input().split())) # list 형태로 입력받음 M = max(score) answer = 0 answer += (sum(score) / M*100) / len(score) print(answer)