본문 바로가기
  • 초부득3 - 어제보다 나은 내일을 위해
  • 꿈이 현실이 되는 날까지

sw사관학교 정글 2기/01 기초,재귀,완전탐색, 정렬34

[완전탐색] 백준 2503번 숫자야구 with Python3 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 문제 내 풀이 import sys 해설 정답 풀이 import sys def game(x,s,b): for i in range(123,1000): if not arr[i]: continue ss=0 bb=0 temp=str(i) for j in range(3): for k in range(3): if x[j]==temp[k]: if j==k: ss+=1 else: bb+=1 if not(ss==s.. 2021. 8. 13.
[DP] 백준 9095번 1,2,3 더하기 with python3 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 내 풀이 import itertools n = int(input()) a = [] for _ in range(n): num = int(input()) if num == 1: a.append(str(1)) elif num == 2: a.append(str(2)) elif num == 3: a.append(str(4)) elif num > 2: count = 0 for i in range(2, num+1): result = list(itertools.product(([1, 2, 3]), rep.. 2021. 8. 13.
[기초] 백준 1110번 더하기 사이클 with python3 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제 내 풀이 def dfs(num): global count sth = int(num) num = str(num) if sth == n and count > 0: return if len(num) == 2: first = int(num[0]) second = int(num[1]) third = str(first + second) if len(third) == 1: next = st.. 2021. 8. 13.
[dfs] ★★★백준 2468번 안전 영역 with Python3 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 문제 정답 풀이 - dfs import sys sys.setrecursionlimit(100000) # 상 우 하 좌 dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] def dfs(x, y, h): for m in range(4): nx = x + dx[m] # m=0: dy[m] = -1 위로 한칸. ny = y + dy[m] # m =1: 오른쪽으로 한칸. # 이런 식으로 상 우 .. 2021. 8. 11.
[완전탐색] 백준 외판원 순회 2 10971번 with Python3★★★ https://www.acmicpc.net/problem/10971 10971번: 외판원 순회 2 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 10) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net 문제 이 문제 또한, 시도는 실패했다. 그렇기에 이해하고, 다룰수 있게끔 타인의 풀이를 해체해보자. dfs - 깊이 우선 탐색: def dfs(start, next, value, visited): global min_value if len(visited) == N: #len(visited) == N 인데, 섬의 개수만큼 방문 개수가 됐다면, 모든 섬을 .. 2021. 8. 10.
[완전탐색] 백준 N-queen 9663번 with Python3 ★★★ https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 정답 풀이 n = int(input()) count = 0 pos = [0] * n flag_a = [False] * n flag_b = [False] * (n + (n-1)) flag_c = [False] * (n + (n-1)) def set(i: int) -> None: global count for j in range(n): if(not flag_a[j] and not flag_b[i+j] and n.. 2021. 8. 10.
[정렬] 백준 1181번 단어 정렬 with Python3 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제 내 풀이 n = int(input()) a = [] for i in range(n): inp = input() if [len(inp), inp] not in a: a.append([len(inp), inp]) a.sort(key=lambda x: (x[0], x[1])) for i in range(len(a)): print(a[i][1]) 해설 풀긴했으나 너무 비효율적으로 풀었다... 2021. 8. 10.
[정렬]★★ 백준 수의 정렬 1,2,3 with Python3 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net https://www.acmicpc.net/problem/10989 10989번: 수.. 2021. 8. 10.
[완전탐색] 백준 10819번 차이를 최대로 with Python3 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 문제 내 풀이 import itertools n = int(input()) inilist = list(map(float, input().split())) inilist.sort() result = list(itertools.permutations(inilist, len(inilist))) ttlsum = [] for i in range(len(result)): inisum = [] search = [] sear.. 2021. 8. 10.