완전탐색
-
[백준 1436번] 영화감독 숌Coding Test/백준 2021. 3. 19. 19:02
# 문제 내 풀이 n = int(input()) title = 666 # 영화 제목에 들어간 수 series = 1 # 해당 영화의 시리즈 순서 # n번째 영화를 찾을 때까지 완전 탐색 while series < n: # 숫자를 하나씩 늘려가며 title += 1 # 숫자에 '666'이 들어가면 영화 시리즈 개수로 셈 if '666' in str(title): series += 1 # n번째 영화의 제목에 포함된 수 출력 print(title) 시간 복잡도 O(N)
-
[백준 7568번] 덩치Coding Test/백준 2021. 3. 19. 03:16
# 문제 내 풀이 n = int(input()) # 사람들의 덩치 정보 입력 받기 people = [tuple(map(int, input().split())) for _ in range(n)] # 현재 사람의 덩치를 다른 모든 사람들과 비교하여 for i in range(n): rank = 1 # 만일 현재 사람보다 덩치가 큰 사람이 있다면, rank를 1 증가시킴 for j in range(n): if people[i][0] < people[j][0] and people[i][1] < people[j][1]: rank += 1 # 현재 사람의 등수 출력 print(rank, end=' ') 생각해볼 점 처음엔 입력 수가 많지 않아 조건에 맞춰 bubble sort를 한 후, 정렬된 정보대로 차례차례 비..
-
[백준 1018번] 체스판 다시 칠하기Coding Test/백준 2021. 2. 28. 19:29
# 문제 내 풀이 - 문제 풀이 실패, 수정 답안 # 첫 칸을 검은색, 흰색 각각으로 칠할 때, 둘 중 다시 칠해야 하는 횟수가 최소인 값을 리턴하는 함수 정의 def paint_board(chess_board): # 첫 칸이 검은색일 경우와 흰색일 경우, 각각 다시 칠하는 횟수 start_b, start_w = 0, 0 for i in range(8): for j in range(8): if (i + j) % 2 == 0: if chess_board[i][j] != 'B': start_b += 1 if chess_board[i][j] != 'W': start_w += 1 else: if chess_board[i][j] != 'W': start_b += 1 if chess_board[i][j] != 'B..
-
[백준 2798번] 블랙잭Coding Test/백준 2021. 2. 14. 00:40
# 문제 내 풀이 n, m = map(int, input().split()) nums = list(map(int, input().split())) # 카드 숫자 입력 받기 result = 0 # M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합 # 전체 카드 숫자 중 3개를 뽑는 모든 경우의 수를 완전 탐색해 비교 for i in range(n - 2): for j in range(i + 1, n - 1): for k in range(j + 1, n): pick_sum = nums[i] + nums[j] + nums[k] if result < pick_sum and pick_sum
-
[이코테 구현-완전탐색] 시각Coding Test/이것이 코딩 테스트다 2021. 1. 8. 21:40
# 문제 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다 00시 00분 03초 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다. 00시 02분 55초 01시 27분 45초 # 입력 첫째 줄에 정수 N이 입력된다. (0
-
[프로그래머스 68644번] 두 개 뽑아서 더하기Coding Test/프로그래머스 2020. 11. 17. 18:29
# 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. # 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. # 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] # 입출력 예 설명 입출력 예 #1 · 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) · 3 = 2 + 1 입니다. · 4 = 1 + 3 입니다. · 5 = 1 + 4 = 2 + 3 입니다. · 6 = 2 + ..
-
[프로그래머스 42840번] 모의고사Coding Test/프로그래머스 2020. 11. 3. 00:28
#문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해..
-
[프로그래머스 60057번] 문자열 압축 (2020 KAKAO Blind)Coding Test/프로그래머스 2020. 10. 22. 05:59
# 문제 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 aabbaccc의 경우 2a2ba3c(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, abcabcdede와 같은 문자열은 전혀 압축되지 않습니다. 어피치는 이러한 단점을 해결하기 위해 문자열을 1개 이상의 단위로 잘라서 압축하여 더 짧..