Algorithm

카테고리 없음

[백준/BOJ] python 1920번 수 찾기

언어: python 번호: 1920 제목: 수 찾기 등급: 실버4 ​ ​ 풀이 과정: 처음에는 for i in lst로 리스트 안에 있는지를 확인했더니 당연하게도 시간 초과가 떴다. 그래서 재귀문을 써서 풀려했다. n, lstn, m, lstm을 입력받아 숫자 리스트를 정렬하고 이진탐색으로. 가운데 값과 비교해서 작으면 왼쪽으로 가고, 크면 오른쪽으로 가려했다. 근데 잘 안됐다. 내 생각에 while문을 안 쓰고 length==0이라는 조건을 걸어서 탐색 횟수가 정해지니까 못 탐색하기 바로 전 단계에서 멈쳐버리는 것 같다. 이를 풀려면 변수를 하나 더 써서 while문에 조건을 걸어야할 것 같다. ​ ​ 코드: 내가 잘못 푼 코드 #1920 n = int(input()) lstn = list(map(in..

BOJ

[백준/BOJ] python 10974번 모든 순열

언어: python 번호: 10974 제목: 모든 순열 등급: 실버3 ​ ​ 풀이 과정: 재귀함수로 풀었다. 리스트를 만들어 해당 숫자에 방문했는지 안했는지를 확인하고 새로운 순열 arr에 추가하는 방식이다. ​ ​ 코드: # 10974 # 순열의현재길이, 모든 숫자의 수, 고를 숫자의 수, 새로 만들 순열, 방문했는지 확인하는 리스트 def permutation(k, n, m, arr, ch): if k==m: print(*arr) else: for i in range(1, n+1): if not ch[i]: ch[i] = True arr[k] = i permutation(k+1, n, m, arr, ch) ch[i] = False N, M = 5, 2 ch = [False]*(N+1) arr = [0..

BOJ

[백준/BOJ] python 10982번 다음 순열

언어: python 번호: 10972 제목: 다음 순열 등급: 실버 3 풀이 과정: 일단 숫자 n과 순열 arr를 입력받는다. arr은 가장 뒤의 숫자부터 2개씩 비교를 하면서 다음 순열을 찾는다. 예를 들어 [1, 3, 4, 2]라는 순열의 다음 숫자를 찾기 위해서는 [4, 2] -> [3, 4] -> [1, 3]의 순서로 비교를 해야한다. 비교할때 앞에 있는 숫자가 더 작으면 두개의 위치를 교환한다. 그리고 교환한 숫자의 뒤를 정렬한다. [1, 3, 4, 2] : 뒤에서부터 4와 2를 비교했는데 앞의 숫자가 더 크니까 그래도 둔다. [1, 3, 4, 2] : 그 다음인 3과 4를 비교했는데 앞의 숫자가 더 작으니 둘의 위치를 교환한다. [1, 4, 3, 2] : 위치를 바꾼 뒤 앞의 숫자인 4를 기준..

kyj0015
'Algorithm' 태그의 글 목록