코테 준비/프로그래머스 41

[level 1] 둘만의 암호

https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아래의 풀이로 했을때는 분명 주어진 예시 테스트는 통과했는데 나머지는 통과하지 못했다.. 흠..틀린 이유가 무엇일지 고민해본다..흑흑 도저히 모르겠어서 다른 블로그 풀이를 참고했다. #틀린 풀이 def solution(s, skip, index): answer = [] for i in s: temp=[] cnt,alpha=0,0 for j in range(1,index+1): temp.appen..

[level 1] 개인정보 수집 유효기간

https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅dict()구조를 사용해서 terms을 새롭게 정의 ✅split()을 사용해서 제대로 p_year, p_month, p_day를 구분하고 더하는것이 필요하다. 주어진 조건을 모두 만족할 수 있도록 체크해야함 def solution(today, terms, privacies): answer = [] time_dict=dict() year,month,day=int(today[0:4]),..

[level 1] 문자열 나누기

https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅s[i]와 같이 index로 접근하는 문제가 아니다. def solution(s): answer = 0 cnt1 = 0 cnt2 = 0 for i in s: if cnt1 == cnt2: answer += 1 x = i if i == x: cnt1 += 1 else: cnt2 += 1 return answer

[level 1] 명예의 전당(1)

https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #틀린 풀이 def solution(k, score): stack = [score[0]] result=[score[0]] for i in range(1,len(score)): stack.append(score[i]) if len(stack)>k: stack.pop(min(stack)) result.append(min(stack)) return stack 핵심포인트 ✅stack구조를 사용한다. ✅..

[level 1] 기사단원의 무기

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from math import sqrt #약수 구하는 함수 정의 def check(n): cnt=0 for i in range(1, int(sqrt(n)) + 1): if n%i==0: cnt+=1 if ( (i**2) != n) : cnt+=1 return cnt def solution(number, limit, power): answer = [] result=0 for i in range(n..

[level 1] 과일 장수

https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 시간이 많이 걸렸다. for문에서 index를 생각하는 것이 관건이었다. ✅stack으로 풀수도 있지만 내림차순으로 정렬해서 굳이 stack안만들고 for문을 m만큼 돌면서 최소 원소를 구해서 바로 answer에다가 +=하는 방식으로 품 def solution(k, m, score): answer = 0 score.sort(reverse=True) #거꾸로 순서대로 정렬 #print(..

[level 1] 푸드 파이트 대회

https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 간단한 문제였다. 완전 구현! def solution(food): answer = '' for i in range(1,len(food)): if food[i]!=1: answer+=str(i)*(food[i]//2) answer_reverse=answer[::-1] answer+="0" answer+=answer_reverse return answer

[level 1] 햄버거 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅ stack 구조를 사용해서 [1,2,3,1] 과 같은 순간에 pop()시켜주기! 이때 원래의 ingredient가 아닌 스택구조에서 pop시켜줌으로써 count를 계산해준다. (자꾸 원본에서 pop시키는 걸 생각하다보니 어려웠다..) def solution(ingredient): count=0 ingredients=[] order=[1,2,3,1] for i in ingredien..

[level 1] 옹알이(2)

https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심포인트 ✅for문을 돌려서 babbling안에 word=["aya","ye","woo","ma"] 원소가 포함되어 있는지를 확인=> 여기서 나머지 문자열 원소들도 word안에 있는 원소로 구성되어야 한다는 점을 생각해보면 count()를 쓸 필요가 없음 ✅연속해서 발음을 할 수는 없는 것을 고려=> 연속으로 이뤄져있지 않는경우 한에서 공백으로 변환해줌. 그리고 완전한 공백으로 최종변환될 경우..

[level 1] 콜라 문제

https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단한 문제인줄 알았는데 생각보다 시간이 많이 소요되었다. 문제를 제대로 파악하는게 핵심이다. def solution(a, b, n): answer = 0 # 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. # 빈 병의 개수가 콜라를 받기 위해서 필요한 개수보다 크면 반복한다 while (n >= a): remain_bottle = n % a n = (n//a) * b # 마트에..