Algorithm/BAEKJOON 23

[백준 BOJ] 15651 N과 M(3) (python)

문제 출처 : https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 🔥 작성 코드 def sol(lst): if len(result) == M: print(*result) return else: for i in range(N): result.append(lst[i]) sol(lst) result.pop() return N, M = map(int, input().split()) lst = [i for i in range(1, N+1)] result ..

Algorithm/BAEKJOON 2022.03.04

[백준 BOJ] 15650 N과 M(2) (python)

문제 출처 : https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 🔥 작성 코드 N, M = map(int, input().split()) lst = [_ for _ in range(1, N+1)] arr = [] for i in range(1 2 3 1001 => 1 4 1010 => 2 4 1100 => 3 4 문제에서는 1 4 보다 2 3이 먼저 출력되면 안되므로 오답입니다. 그래서 result의 원소가 2개가 될 때마다 arr에 저장해두고..

Algorithm/BAEKJOON 2022.03.04

[백준 BOJ] 15649 N과 M(1) (python)

문제 출처 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 🔥 작성 코드 def sol(lst): if len(result) == M: print(*result) return else: for i in range(N): if v[i] == 0: v[i] = 1 result.append(lst[i]) sol(lst) result.pop() v[i] = 0 return N, M = map(int, input().split()) lst = [i..

Algorithm/BAEKJOON 2022.03.04

[백준 BOJ] 1063 킹 (python)

https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 🔥 작성 코드 # 위치를 구하기 위한 딕셔너리 생성 trans = { 'A' : 0, 'B' : 1, 'C' : 2, 'D' : 3, 'E' : 4, 'F' : 5, 'G' : 6, 'H' : 7 } # 커맨드 딕셔너리 생성 command = { 'R' : (0, 1), 'L' : (0, -1), 'B' : (-1, 0), 'T' : (1, 0), 'RT' : (1, 1), 'LT' : (1, -1), 'R..

Algorithm/BAEKJOON 2022.02.24

[백준 BOJ] 1091 카드 섞기

https://www.acmicpc.net/problem/1091 1091번: 카드 섞기 지민이는 카지노의 딜러이고, 지금 3명의 플레이어(0, 1, 2)가 있다. 이 게임은 N개의 카드를 이용한다. (0 ~ N-1번) 일단 지민이는 카드를 몇 번 섞은 다음에, 그것을 플레이어들에게 나누어 준다. 0 www.acmicpc.net 🔥 코드 # 입력받기 N = int(input()) P = list(map(int, input().split())) S = list(map(int, input().split())) # 카드 배열 복사 lst = [x for x in P] lst2 = [x for x in P] # 값 초기화 result = -1 cnt = 0 # 한 바퀴 돌 동안 답이 안나오거나 찾으면 break..

Algorithm/BAEKJOON 2022.02.24

[백준 BOJ] 2133 타일 채우기 (python)

https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 🔥 작성 코드 N = int(input()) if N%2: result = 0 else: dp = [0] * (N+1) dp[2] = 3 for i in range(4, N+1, 2): dp[i] = 3*dp[i-2] + 2 if i != 4: for j in range(4, i-1, 2): dp[i] += 2*dp[j-2] result = dp[N] print(result) ⭕ 해설 N이 홀수라면 3xN의 벽은 크기가 홀수가 됩니다. 따라서 2x1, 1x2 크기의 타일로 채울 수 없습니다. N이 짝수일 경..

Algorithm/BAEKJOON 2022.02.23

[백준 BOJ] 13398 연속합 2 (python)

https://www.acmicpc.net/problem/13398 13398번: 연속합 2 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 🔥 시간초과 코드 n = int(input()) lst = list(map(int, input().split())) dp1 = [0 for _ in range(n)] dp1[0] = lst[0] if n > 1: for i in range(1, n): dp1[i] = max(lst[i], dp1[i-1] + lst[i]) result1 = max(dp1) result2 = lst[0] for i in..

Algorithm/BAEKJOON 2022.02.18

[백준 BOJ] 14696 딱지놀이 (python)

https://www.acmicpc.net/problem/14696 14696번: 딱지놀이 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 딱지놀이의 총 라운드 수를 나타내는 자연수 N이 주어진다. N 은 1 이상 1,000 이하이다. 다음 줄에는 라운드 1에서 어린이 A가 내는 딱지에 나 www.acmicpc.net 🔥 처음 작성코드 (32점) import sys input = sys.stdin.readline N = int(input()) for _ in range(N): ac = list(map(int, input().split())) bc = list(map(int, input().split())) acc = [0] * 4 bcc = [0] * 4 for i in range(1, ac[0]+..

Algorithm/BAEKJOON 2022.02.16

[백준 BOJ] 10163 색종이 (python)

https://www.acmicpc.net/problem/10163 10163번: 색종이 평면에 색깔이 서로 다른 직사각형 모양의 색종이 N장이 하나씩 차례로 놓여진다. 이때 색종이가 비스듬하게 놓이는 경우는 없다. 즉, 모든 색종이의 변은 서로 평행하거나, 서로 수직이거나 둘 www.acmicpc.net 🔥 처음 제출 코드 (53점) N = int(input()) arr = [[0 for _ in range(1001)] for _ in range(1001)] for n in range(1, N+1): x, y, w, h = map(int, input().split()) for i in range(x, x+w): for j in range(y, y+h): arr[i][j] = n for i in rang..

Algorithm/BAEKJOON 2022.02.16

[백준 BOJ] 9465 스티커 (python)

https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 🔥 작성코드 T = int(input()) for _ in range(T): n = int(input()) arr = [list(map(int, input().split())) for _ in range(2)] dp = [[arr[0][i], arr[1][i]] for i in range(n)] if n >= 2: dp[1][0] += dp[0][1] dp[1][1] += dp[0][0..

Algorithm/BAEKJOON 2022.02.16