일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Programming
- c++
- guide
- DP
- 프로그래밍
- 파이썬
- Unity
- 문제풀이
- Material
- String
- 오류
- dynamic
- parameter
- Unreal Engine 5
- 시작해요 언리얼 2022
- W3Schools
- Tutorial
- python
- Algorithm
- 기초
- github
- 재귀
- Class
- loop
- C#
- w3school
- 백준
- UE5
- Basic
- dfs
- Today
- Total
목록Algorithm (107)
행복한 개구리

arr = [] result = [] def DFS(n, m): if len(arr) == m: if sorted(arr) in result: return else: result.append(sorted(arr)) return for i in range(1, n+1): if i not in arr: arr.append(i) DFS(n, m) arr.pop() N, M = map(int, input().split()) DFS(N, M) for i in result: print(" ".join(map(str, i))) N과 M (1)때처럼 DFS를 사용하여 백트래키을 구현했습니다. 추가로 오름차순인 수열만 인정한다는 조건이 있습니다. 따라서 모든 경우의 수를 탐색할 arr리스트와 오름차순 수열을 저장할 re..

퇴각검색 - 위키백과, 우리 모두의 백과사전 퇴각검색(영어: backtracking, 한국어: 백트래킹)은 한정 조건을 가진 문제를 풀려는 전략이다. "퇴각검색(backtrack)"이란 용어는 1950년대의 미국 수학자 D. H. 레머가 지었다. 문제가 한정 조건을 가진 ko.wikipedia.org arr = [] def dfs(n, m): if len(arr) == m: print(" ".join(map(str, arr))) return for i in range(1, n+1): if i not in arr: arr.append(i) dfs(n, m) arr.pop() N, M = map(int, input().split()) dfs(N, M) 백트래킹을 활용한 문제풀이입니다. 백트래킹은 브루트포스와..

↓틀린코드 더보기 import sys N = int(sys.stdin.readline()) coord = list(map(int, sys.stdin.readline().split())) idx = sorted(list(set(coord))) result = [] for i in range(len(coord)): for j in range(len(idx)): if coord[i] == idx[j]: result.append(idx.index(idx[j])) for i in result: sys.stdout.write(str(i) + " ") sys를 활용하여 시간을 조금이나마 확보하였습니다. 그리고 세가지 리스트를 활용하여 coord의 요소 값이 idx에서 몇 인덱스값을 가지는지 result에 순서대로 저..

↓틀린코드 더보기 import sys N = int(sys.stdin.readline()) members = [] for _ in range(N): age, name = map(str, sys.stdin.readline().split()) members.append([int(age), name]) members.sort(key=lambda x: (x[0], x[1])) for i in members: print(i[0], i[1]) 나이순으로 정렬 후 이름의 사전순으로 정렬이 이루어져서 틀렸습니다. import sys N = int(sys.stdin.readline()) members = [] for _ in range(N): age, name = map(str, sys.stdin.readline().s..

N = int(input()) string = [] for _ in range(N): val = input() if val in string: continue else: string.append(val) string.sort(key=lambda x: (len(x), x)) for i in string: print(i) 중복값을 출력하지 않으므로 입력값을 받을 때 중복되는 값은 리스트에 저장하지 않습니다. 완성된 리스트를 sort메서드를 사용하여 정리하는데 key매개변수를 lambda식을 활용하여 할당해주는 방식으로 진행했습니다. 우선순위를 요소의 길이, 그 다음이 요소 자체로 설정했습니다. sort메서드는 str타입의 객체를 사전순으로 정렬합니다.

import sys N = int(sys.stdin.readline()) loc = [] for _ in range(N): x, y = map(int, sys.stdin.readline().split()) loc.append([x, y]) loc.sort(key=lambda x: (x[1], x[0])) for i in loc: print(i[0], i[1]) 좌표 정렬하기 1 문제와 상당히 유사한 문제입니다. 여기서는 lambda식을 이용하여 sort의 key 매개변수를 지정했습니다. 람다식을 풀이하자면 sort메서드는 이터러블 객체의 모든 요소를 겪게되므로 x는 loc의 각 요소를 의미합니다. 따라서 x[1]은 y축, x[0]은 x축 좌표이므로 x[1]을 우선으로 설정한 뒤 x[0]을 후순위로 지정하..