# 이동할 위치가 격자 밖이거나 !=0이면 방향 전환 (dir_num + 1) % 4# 이후에 알파벳 입력# Z 다음에 A로 변환 필요n, m = map(int, input().split())arr = [[0 for _ in range(m)] for _ in range(n)]def in_range(x, y): return 0 https://www.codetree.ai/missions/5/problems/snail-alphabet-square?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetre..
개발/코테
이번 주 가장 오래 걸렸던 문제https://www.codetree.ai/missions/5/problems/correlation-between-shaking-hands-and-infectious-diseases2?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai N, K, P, T = map(int, input().split()) # n명, k번의 악수, 처음 걸린 p, 총 악수 t번arr_n = [0 for _ in range(101)] # 개발자 번호arr_t = [[0 for _..
https://www.codetree.ai/missions/5/problems/distance-from-origin?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai class Dot: def __init__(self, x, y, num): self.x = x self.y = y self.num = numn = int(input())arr = []for i in range(1, n + 1): x, y = tuple(map(int, input(..
와 대박 재귀함수를 다 풀었다.예전에 재귀에서 한 번 무너진 기억이 있어서 다 끝낼 수 있을까했는데 생각보다 쉬웠다. 이번 주는 프로그래밍 연습 부분에서 함수, 재귀함수 부분을 풀었다.재밌다~~ 코테 문제 푸는 게 이렇게 재밌는 거였다니 n = int(input())arr = list(map(int, input().split()))def lcm(a, b): for num in range(max(a, b), a * b + 1): if num % a == 0 and num % b == 0: return num def calculate(n, value): if n == 0: return lcm(arr[0], value) return calculate(..
이번 주는 코드트리 커리큘럼 중 [프로그래밍 기초]에서 내가 필요한 부분을 찾아서 문제를 풀었다.2차원 배열과 문자열 파트에 집중해서 풀었는데, 2차원 배열은 아직 한 문제 못 풀었다.지금 이틀 째 코드 초기화 시켜가면서 다른 방법으로 계속 접근 시도 중인데 내일 한 번 더 해 볼거다.코드 트리 짱 좋다. 재밌다. 하루 종일 이것만 하는데 시간이 너무 잘 가서 문제다. 오늘 풀었던 문제들은 쉬웠어서 그나마 상대적으로 긴 시간이 걸린 문제만 기록https://www.codetree.ai/missions/4/problems/keep-removing-string?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이..
순서쌍의 개수 풀이 def solution(n): return len([i for i in range(1, n+1) if n%i==0]) 나누어 떨어지면 순서쌍에 해당된다. 리스트를 만들고 리스트의 길이를 리턴한다. 다른 풀이 def solution(n): return len(list(filter(lambda v: n % (v+1) == 0, range(n)))) filter(function, iterator) 함수를 사용해서 iterator 값을 함수에 넣어서 true인 값을 리스트로 만든다. 0부터 n-1까지의 값들 중에 나누어 떨어지는 값을 필터링한다. 진료순서 정하기 풀이 def solution(emergency): li = sorted(emergency, reverse=True) return [..
숨어있는 숫자의 덧셈(1) 풀이 def solution(my_string): return sum([int(i) for i in my_string if i in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]]) 인덱스 바꾸기 풀이 def solution(my_string, num1, num2): s = list(my_string) s[num1], s[num2] = s[num2], s[num1] return ''.join(s) list(my_string)으로만 해도 리스트로 변경된다. swap()함수를 따로 사용할 필요 없이 파이썬에서는 문자를 서로 바꾸는 문법을 지원한다. 특정 문자 제거하기 풀이 def solution(my_string, letter): s =..
최빈값 구하기 풀이 def solution(array): count = [0]*(max(array)+1) for i in array: count[i] += 1 alot = -1 for i in count: if alot < i: alot = i return count.index(alot) if count.count(alot) == 1 else -1 코딩을 C로 시작한 터라.. 이런 방법밖에는 생각나지 않았다.. array의 최대값 크기만큼 count 배열을 생성한다. array의 값이 나올 때마다 count 배열의 인덱스에서 +1을 한다. count 배열의 가장 큰 값이 최빈값이다. 가장 큰 값이 2개 이상이면 -1을 리턴한다. 다른 풀이 def solution(array): while len(array..
피자 나눠 먹기(2) 풀이 import math def solution(n): return n/math.gcd(6, n) 6과 n의 최소공배수를 6으로 나눈 값이 답이다. 파이썬 3.9부터 최소공배수를 구하는 lcm함수를 지원하는데, 프로그래머스의 버전이 3.8.5이기 때문에 lcm 함수가 지원되지 않는다. 따라서 최소공배수는 6*n/gcd(6,n) 이다. 답은 6*n/gcd(6,n)/6을 구하면 되는데, 약분해서 n/gcd(6,n)을 계산한다. 피자 나눠 먹기(3) def solution(slice, n): return n//slice if n%slice==0 else n//slice+1 n/slice의 값이 나누어 떨어지면 n/slice의 몫이 값이 된다. 나누어 떨어지지 않으면 한 판을 더 시키면 ..