일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 백준 1253번
- 모각코
- ubuntu
- 다이나믹프로그래밍
- 깃헙
- 백준 3085번
- HUFS 모각코 캠프
- 백준 2512번
- MySQL
- SWEA 15612번
- 다이나믹 프로그래밍
- 머신러닝과 딥러닝
- react
- 백준 15787번
- 백준 17451번
- 백준 1331번
- 백준
- 백준 1987
- javascript
- 명품자바
- SQL
- java_programming
- 자바
- 그리디
- 그래프
- 백준 16918번
- Python
- 백준 18310번
- AWS
- 알고리즘
- Today
- Total
목록알고리즘 (13)
차곡차곡
11726번: 2×n 타일링 (acmicpc.net) 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net n = int(input()) C = [0 for i in range(n+1)] # 방법의 수 for i in range(1, n+1): if i == 1: C[i] = 1 elif i == 2: C[i] = 2 else: C[i] = C[i-1] + C[i-2] print(C[n]%10007) 타일을 넣는 방법은 2x1 타일을 넣는 방법, 1x2 타일을 넣는 방법으로 크게 두 가지로 나눌 수 있다. 2x1 타일부터 2xn 타일까지..
저번 문제 풀기 실패하고 결국 다른 문제 풀었다..^0^ 9095번: 1, 2, 3 더하기 (acmicpc.net) 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net T = int(input()) # 테스트 케이스 개수 N = [] # 정수 n 저장 for i in range(T): N.append(int(input())) C = [0 for i in range(max(N)+1)] # n을 1, 2, 3의 합으로 나타내는 방법의 수 for i in range(1, max(N)+1): if i == 1: C[i] = 1 elif i == 2: C[i] = 2 elif i == 3: C[i] = 4 else: C..
1339번: 단어 수학 (acmicpc.net) 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net ** 틀린 알고리즘 N = int(input()) # 단어 개수 word = [] # 단어 for _ in range(N): word.append(input()) num = 9 dic = {} word_num = [ str(0) for i in range(N)] # 숫자로 바꾼 단어 while(True): max_len_word = 0 for i in range(len(word)): if max_len_wor..
https://amor-fati.tistory.com/41 [모각코] 210804 Today I Learned 1987번: 알파벳 (acmicpc.net) 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 amor-fati.tistory.com 지난 주에 visited 리스트가 재귀함수를 빠져나와도 변경된 값이 계속 유지되어서 문제가 된다고 했었는데, 그냥 copy가 아닌 copy.deepcopy() 함수만 쓰면 됐다. 예전에 쓴 적 있는데 까먹고 있었다. 바보 ㅎㅋ 그런데 코드를 고치고 생각해보니 visited 리스트 자체가 필요 없었다. 이번 문제는 이전에 지나간 곳..
2178번: 미로 탐색 (acmicpc.net) 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 지난 문제(https://amor-fati.tistory.com/41)는 아직 해결하지 못 했다 ..... 그래서 dfs, bfs 알고리즘을 떠올릴겸 기본적인 미로 탐색 문제를 다시 풀어봤다. 풀면서 생각해보니 깊이 우선 탐색이 아니라 너비 우선 탐색으로 풀어야 했나 싶다. 그거 다 고치고 올리면 또 늦어질 것 같아서 일단 먼저 올린다. ㅜ 먼저 한 행씩 문자열로 입력 받은 것을 한 글자씩 읽으며 L 리스트에 저장해주고, 그 L 리스트를 maze..
1987번: 알파벳 (acmicpc.net) 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 또 너무 늦어질 것 같아서 먼저 올리는 완성 안 된 코드 ㅜ import copy global max_count max_count = 0 # DFS class Node: def __init__(self, bord): self.value = bord[0][0] self.row = 0 self.col = 0 def Move(bord, visited, p, R, C, count, before): before.appe..
210728 못 풀었던 문제 (타입 에러) https://amor-fati.tistory.com/39 [모각코] 210728 Today I Learned 2193번: 이친수 (acmicpc.net) 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 amor-fati.tistory.com N = int(input()) pinary = [0 for i in range(N)] for i in range(N): if i == 0: pinary[i] = (0, 1) elif i == 1: pinary[i] = (1, 0) # (0으로 끝나는 문자열 개수, 1로 끝나는 문자열 ..
2193번: 이친수 (acmicpc.net) 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net N = int(input()) pinary = [0 for i in range(N)] for i in range(1, N): if i == 1: pinary[i] = (1, 0) # (0으로 끝나는 문자열 개수, 1로 끝나는 문자열 개수) else: pinary[i] = (pinary[i-1][0] + pinary[i-1][1], pinary[i-1][0]) print(int(pinary[-1][0]) + ..