썸네일 [알고리즘] 프로그래머스 - 더 맵게 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내가 짠 코드 (안돌아간 코드)import heapqdef solution(scoville, K): cnt = 0 heapq.heapify(scoville) if heapq.nsmallest(1, scoville)[0] >= K: return cnt while len(scoville) >= 2: first = heapq.heappop(scoville) second = heapq.heappop(scoville) new = first + (sec..
썸네일 [1일 3알고리즘] Day7 1. 덧칠하기https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr# [Lv.1] 덧칠하기def solution(n, m, section): paint = 0 ans = 0 # wall = [i for i in range(n)] for n in section: if n > paint: paint = n + m - 1 ans += 1 retur..
썸네일 [1일 3알고리즘] Day6 1. 로또의 최고 순위와 최저 순위 (추후 Refactor) https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(lottos, win_nums): ans = [] wins = 0 for i in range(len(win_nums)): if lottos[i] in win_nums: win_nums.remove(lottos[i]) wins += 1 cnt = lottos.count(0) lessWin = wins if cnt
썸네일 [1일 3알고리즘] Day5 1. 모의고사 이 문제는 원래 아래와 같이 시도했었다. def solution(answers): ans = [] scoreDic = {} scoreDic.update({1: math1(answers)}) scoreDic.update({2: math2(answers)}) scoreDic.update({3: math3(answers)}) scoreDic = sorted(scoreDic.items(), key=lambda item: item[1], reverse=True) highest_score = scoreDic[0][1] for key, value in scoreDic: if value == highest_score: ans.append(key) else: break return ans def math1..
썸네일 [1일 3알고리즘] Day4 1. 삼총사https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krdef solution(number): sol = 0 for i in range(len(number)): for j in range(i+1, len(number)): for k in range(j+1, len(number)): if (number[i] + number[j] + number[k])..
썸네일 [1일 3알고리즘] Day3 주말을 패스... 하고 다시 시작! 깃헙에 올릴지 고민중이다 쉬운 문제를 많이 풀어서 파이썬 기초를 다시 다지고자 한다. 1. 서울에서 김서방 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(seoul): ans = 0 for name in seoul: if "Kim" in name: break ans+=1 return f"김서방은 {ans}에 있다" 이렇게 해도 되지만 def solution(seoul): ans ..
썸네일 [1일 3알고리즘] Day2 1. [카카오 인턴] 키패드 누르기 - 프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(numbers, hand): keyPositions = { 1: (0, 0), 2: (0, 1), 3: (0, 2), 4: (1, 0), 5: (1, 1), 6: (1, 2), 7: (2, 0), 8: (2, 1), 9: (2, 2), '*': (3, 0), 0: (3, 1), '#': (3, 2) } leftPos = k..
썸네일 [1일 3알고리즘] Day1 알고리즘 공부를 다시 해야겠다......! 특히 코테는 파이썬으로 볼 예정인데, 스프링 자바를 쓰니(이것도 잘 못하지만,,,) 알고리즘 문제 풀이 능력이 아에 상실된 것 같아, 본격적인 취준 준비에 앞서 아주 쉬운 문제부터 1일 3알고리즘을 지키고자 한다. 풀 문제 프로그래머스 코딩테스트 (https://school.programmers.co.kr/learn/challenges?order=recent&levels=1&languages=python3%2Cpython) 페이지에서 Lv.1부터 백준 solved.ac 기준 브론즈 3 이상(https://solved.ac/problems/level) 1. 추억 점수 - 프로그래머스 https://school.programmers.co.kr/learn/course..
썸네일 [DP]note 5 동적 프로그래밍ex. 피보나치재귀적으로 구현할 경우 중복 호출로 인한 심각한 비효율// 피보나치 - 재귀 호출int fib(int n){ if (n == 1 || n == 2) return 1; else return fib(n-1) + fib(n-2);} 메모이제이션 방식: 중간 계산 결과를 caching 함으로써 중복 계산을 피함// 피보나치 - 메모이제이션int fib(int n){ if (n == 1 || n == 2) return 1; else if (f[n] > -1) // 배열 f가 -1로 초기화되어있다고 가정 return f[n]; //  동적 프로그래밍: bottom-up 방식으로 중복 계산을 피함// 피보나치 - ..
썸네일 [백준] 2309: 일곱 난쟁이 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 최종 코드 list = [] flag = 0 for i in range(9): list.append(int(input())) for i in range(8): for j in range(i + 1, 9): # print(f"sum(list) -> {sum(list)} list[i] + list[j] -> {list[i] + list[j]}") if sum(list) - (list[i] + list[j]) == 100: a = list[i] b = list[j] list...
썸네일 [백준] 6588: 골드바흐의 추측 최종 코드 최종 코드는 아래와 같다. 에라토스테네스의 체를 활용해야 하는 문제였다. MAX = 1000000 # MAX = 1000 ansIndex = [1] * (MAX + 1) # 전체 index를 1(소수) 로 설정 for i in range(3, int(MAX ** 0.5) + 1, 2): # i를 3부터 시작하여 MAX의 제곱근까지, 홀수로 증가시키는 루프를 설정 if ansIndex[i] == 1: # 현재 숫자 i가 소수인지 확인 for j in range(i * 2, MAX, i): ansIndex[j] = 0 while True: k = int(input()) if k == 0: break for i in range(3, int(k / 2) + 1, 2): # 소수 i의 배수를 찾기 위한..
썸네일 [백준] 1929번: 소수 구하기 또다시 소수 구하기 문제였다. 소수의 조건인 1과 자기 자신으로만 나누어진다를 명심하고 풀이에 임했다. 풀이는 다음과 같다 풀이 1. 1은 소수가 아니다 (코드에서 num