코딩테스트대비29 알파벳 빈도수 찾기 (두번째 풀이) def find_max_occurred_alphabet(string): alpha_list = [0] * 26 # 아스키 코드로 풀기 for each_string in string: if each_string.isalpha(): alpha_idx = ord(each_string)-97 alpha_list[alpha_idx] += 1 max_count_idx = alpha_list.index(max(alpha_list)) find_alpha = chr(max_count_idx+97) return find_alpha result = find_max_occurred.. 코딩테스트대비/알고리즘과 친해지기 & 시간복잡도 2024. 11. 24. 알파벳 최빈값 찾기 def find_max_occurred_alphabet(alpha_list): dict_alpha = {} max_count = -999 return_key = "" for each_alpha in alpha_list: alpha_key = each_alpha if alpha_key not in dict_alpha: if alpha_key == " ": continue dict_alpha[alpha_key] = 0 dict_alpha[alpha_key] += 1 for key, value in dict_alpha.items(): if value > .. 코딩테스트대비/알고리즘과 친해지기 & 시간복잡도 2024. 11. 24. 최댓값 찾기 def find_max_num(array): max_num = - 999 for each_num in array: if each_num > max_num: max_num = each_num return max_num print("정답 = 6 / 현재 풀이 값 = ", find_max_num([3, 5, 6, 1, 2, 4]))print("정답 = 6 / 현재 풀이 값 = ", find_max_num([6, 6, 6]))print("정답 = 1888 / 현재 풀이 값 = ", find_max_num([6, 9, 2, 7, 1888]))------------------------------다른 풀이def find_max_num(array): fo.. 코딩테스트대비/알고리즘과 친해지기 & 시간복잡도 2024. 11. 24. 로봇의 이동 def solution(moves): dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] x = y = 0 d = 1 for c in moves: if c == 'G': x = x + dx[d] y = y + dy[d] elif c == 'R': d = (d + 1) % 4 elif c == 'L': d = (d - 1) % 4 return [x, y] print(solution('GGGRGGG')) print(solution('GGRGGG')) print(solution('GGGGGGGRGGGRGGRGGGLGGG')) print(solution('GGLLLGLGGG')) 코딩테스트대비/탐색 & 시물레이션 2023. 9. 7. 랜선자르기(결정알고리즘) import sys sys.stdin = open("input.txt","rt") x,y = map(int,input().split()) lines = [] for i in range(x): nums = int(input()) lines.append(nums) def Count(len): cnt = 0 for x in lines: cnt += (x//len) return cnt lt = 1 largest = 0 res = 0 for k in lines: largest = max(largest, k) rt = largest while lt = y: res = mid lt = mid + 1 else: rt = mid - 1 print(res) 코딩테스트대비/이분탐색(결정알고리즘) & 그리디 알고리즘 2023. 4. 2. 이분검색 import sys sys.stdin = open("input.txt","rt") a,b = map(int, input().split()) nums = list(map(int, input().split())) nums.sort() lt = 0 rt = a-1 mid = (lt + rt)//2 while True: mid = (rt+lt)//2 if nums[mid] > b: rt = mid - 1 elif nums[mid] < b: lt = mid + 1 elif nums[mid] == b: print(mid+1) break 코딩테스트대비/이분탐색(결정알고리즘) & 그리디 알고리즘 2023. 3. 31. 이분검색(2회독) import syssys.stdin = open("input.txt","rt")a,b = map(int, input().split())nums = list(map(int, input().split()))nums.sort()lt = 0rt = a-1mid = (lt + rt)//2while True: if nums[mid] b: mid -= 1 if nums[mid] == b: print(mid+1) breakimport sys# 18 54 46 52 28 22 23 53 28 40 # sys.stdin = open("input.txt","rt")# 15 99# 73 32 31 49 94 37 40 62 78 66 27 100 99 29 9n, num = .. 코딩테스트대비/이분탐색(결정알고리즘) & 그리디 알고리즘 2023. 3. 30. 격자판 회문수 import sys sys.stdin = open("input.txt","rt") lists = [list(map(str, input().split())) for _ in range(7)] row_list = [] col_list = [] rev_row_list = [] rev_col_list = [] for i in range(7): for j in range(3): row_str = "" col_str = "" for k in range(5): row_str += lists[i][j+k] col_str += lists[j+k][i] row_list.append(row_str) col_list.append(col_str) for i in row_list: rev_row = "" for idx in ra.. 코딩테스트대비/탐색 & 시물레이션 2023. 3. 30. 스도쿠 import sys import math import numpy as np # sys.stdin = open("input.txt","rt") lists = [list(map(int,input().split())) for _ in range(9)] # 3 x 3 행렬에 중복이 없는지 # 전체 행의 중복이 없는지 # 전체 열의 중복이 없는지 cnt_1 = 0 cnt_2 = 0 for row in range(9): ch_1 = [0] * 10 ch_2 = [0] * 10 for col in range(9): # 행체크 # ch_1[lists[row][col]] = 1 # 열체크 # ch_2[lists[col][row]] = 1 if sum(ch_1) != 9: cnt_1 = 1 if sum(ch_2) != 9.. 코딩테스트대비/탐색 & 시물레이션 2023. 3. 29. 봉우리 import sys import math sys.stdin = open("input.txt","rt") n = int(input()) lists = [list(map(int,input().split())) for _ in range(n)] lists.insert(0, [0 for _ in range(n)]) lists.append([0 for _ in range(n)]) for i in range(len(lists)): lists[i].insert(0, 0) lists[i].append(0) dx = (-1,0,0,1) dy = (0,-1,1,0) cnt = 0 for row in range(1,n+1): for col in range(1,n+1): if all(lists[row][col] > lists.. 코딩테스트대비/탐색 & 시물레이션 2023. 3. 28. 곳감 import sys import math sys.stdin = open("input.txt","rt") n = int(input()) lists = [list(map(int, input().split())) for _ in range(n)] k = int(input()) rot = [list(map(int, input().split())) for _ in range(k)] # 2행 왼쪽(0)으로 3번 이동 for i in rot: row, dir,num = i if dir == 0: for i in range(num): lists[row-1].append(lists[row-1].pop(0)) else: for i in range(num): lists[row-1].insert(0,lists[row-1].p.. 코딩테스트대비/탐색 & 시물레이션 2023. 3. 26. 사과나무 import sys import math sys.stdin = open("input.txt","rt") n = int(input()) lists = [list(map(int, input().split())) for i in range(n)] st_point = lists[0][math.floor(n/2)] first_ind = math.floor(n/2) for i in range(1,first_ind+1): lt_point = first_ind - i rt_point = first_ind + i + 1 st_point += sum(lists[i][lt_point:rt_point]) x = 0 for k in range(i+1, n): x += 1 first_ind = x last_ind = -x st_.. 코딩테스트대비/탐색 & 시물레이션 2023. 3. 25. 이전 1 2 3 다음