본문 바로가기

🔅코딩테스트 공부🔅213

[수학] 피보나치 수 구현하는 여러 방법 1. 피보나치 수 첫 번째 항을 0, 두 번째 항을 1로 한 후, 이후의 항들은 이전의 두 항을 더한 값으로 이루어진 수열 2. 재귀함수 이용하기 => 비효율 n = int(input()) def fibo(n): if n == 0 or n == 1: return n else: return fibo(n-1) + fibo(n-2) print(fibo(n)) 3. 행렬 이용하기 n = int(input()) def fibo(n): f1 = 0 f2 = 1 for i in range(2, n+1): f3 = f1 + f2 f1 = f2 f2 = f3 return f2 print(fibo(n)) 4. list 이용하기 n = int(input()) def fibo(n): arr = [0,1] for i in ra.. 2023. 2. 13.
[프로그래머스] Level1 로또의 최고 순위와 최저 순위(python) https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(lottos, win_nums): lank = {0:6,1:6,2:5,3:4,4:3,5:2,6:1} cnt = 0 answer = [] for i in lottos: print(i) if i in win_nums: cnt += 1 answer.append(lank[cnt + lottos.count(0)]) answer.append(lank[cnt]) .. 2023. 2. 13.
[프로그래머스] Level1 숫자 문자열과 영단어(python) https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): voca = { "zero" : 0, "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5, "six" : 6, "seven" : 7, "eight" : 8, "nine" : 9} for i in voca: if i in s: s = s.replace(i, str(voca[i])) return .. 2023. 2. 13.
[백준] 7569번 토마토 (python) https://www.acmicpc.net/step/24 그래프와 순회 단계 BFS의 특징은 각 정점을 최단경로로 방문한다는 것입니다. 이 점을 활용해 최단거리를 구해 봅시다. www.acmicpc.net 1. 내가 작성한 코드 from collections import deque import sys input = sys.stdin.readline m,n,h = map(int, input().split()) matrix = [[list(map(int, input().split())) for _ in range(n)]for _ in range(h)] #첫 상태 queue = deque() for i in range(h): for j in range(n): for k in range(m): if matrix.. 2023. 2. 13.
[프로그래머스] Level1 문자열 나누기(python) https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): s = list(s) result = 0 while len(s) >= 1: cnt0 = 0 #같을 때 cnt1 = 0 #다를 때 for i in range(0, len(s)): start = s[0] if s[i] == start: cnt0 +=1 else: cnt1 +=1 if cnt0 == cnt1: result += 1 del s[:i+.. 2023. 2. 13.
[백준] 7576번 토마토 (python) https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 1. 내가 작성한 코드 from collections import deque n, m = map(int, input().split()) arr = [] for i in range(m): arr.append(list(map(int, input().split()))) arr2 = [] #처음 시작이 1인 좌표 cnt = 0 for i in range(m): for j in range(.. 2023. 2. 12.
[프로그래머스] Level1 개인정보 수집 유효기간(python) https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 제가 짠 코드는 넘나리 더러워서,, 다른 분이 푼 걸 참조하길 추천드려여,, 저도,,나주엥,,,다시풀어봐야하걸랑요,,, def solution(today, terms, privacies): term = {} #이용약관 딕셔너리 형태로 재구성 pr1 = [] #날짜 pr2 = [] #약관종류 answer = [] #파기해야할 index for i in terms: a,b =.. 2023. 2. 12.
[백준] 1931번 회의실 배정(python) https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 나의 7전 8기 정신 😥 반례찾기 참 ㅇㅓ렵지만 해결했음에 감사하다~ 1. 내가 작성한 코드 t = int(input()) #회의의 수 arr = [] #회의의 정보가 담긴 list for i in range(t): time = list(map(int, input().split())) arr.append(time) arr = sorted(arr, key = lambda x : (x[1],x[0])) #끝나는 시간 순으로 정렬, 끝나는 시간이 같을 경우 시작 시간 순으로 정렬 cnt = 0 top = [0,0] f.. 2023. 2. 11.
[프로그래머스] Level1 신고 결과 받기(python) https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(id_list, report, k): fault = {} #신고를 당한 사람 result = [] #신고한 사람 전체 result1 = {} #메일 받을 횟수 for i in id_list: fault[i] = [] result1[i] = 0 for i in set(report): a,b = i.split() fault[b].append(a) for .. 2023. 2. 11.