본문 바로가기

Algorithm/구현92

[프로그래머스 lv 1] 신고 결과 받기 사용 언어 - Python3 문제 - 신고 결과 받기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 defaultdict 이용한 딕셔너리 구현 (정답 맞춘 여부 X) user = {신고한 사람 : 신고 받은 사람들} cnt = {신고 받은 사람 : 신고 받은 횟수} 딕셔너리로 저장 id_list 별로 한개씩 확인, user 딕셔너리에서 id 확인해 신고받은 사람들의 신고횟수가 k이상인 경우, result += 1 # defaultdict = dict 입력형식 지정 set or int from collections import defaultdict d.. 2023. 5. 15.
[프로그래머스 lv 1] 성격 유형 검사 사용 언어 - Python3 문제 - 성격 유형 검사 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 딕셔너리 단순 구현 (정답 맞춘 여부 X) 딕셔너리 dic 활용하여 각 알파벳별 점수 저장하기 c>4, 두번째 알파벳의 숫자에 c-4를 추가한다. (5,6,7번째=>숫자1,2,3 추가) c숫자3,2,1 추가) dic.items()를 list로 저장한다. (R,1)의 형태 인덱스 0,1 / 2,3 / 4,5 ... 두개씩 비교하면서 더 큰 성격유형 str을 answer에 추가해준다. def solution(survey, choices): answer =.. 2023. 5. 12.
[프로그래머스 lv 1] 숫자 짝꿍 사용 언어 - Python3 문제 - 숫자 짝꿍 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 단순 계산 (정답 맞춘 여부 X) range(9,-1,-1) = 9부터 -1씩 0까지 str * 숫자 = str을 숫자개수만큼 문자열로 합치기 answer가 모두 0으로 채워져있다면 0을 return def solution(X, Y): answer = '' for i in range(9,-1,-1): answer += (str(i) * min(X.count(str(i)), Y.count(str(i)))) if answer == '': return '-1' .. 2023. 5. 12.
[프로그래머스 lv1] 콜라 문제 사용 언어 - Python3 문제 - 콜라 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 단순 계산 (정답 맞춘 여부 O) 병을 팔고 남은 remain_bottle을 저장한다. 새로 받는 콜라 개수를 n으로 저장해 n이 a보다 작아질때까지 반복해준다. def solution(a, b, n): answer = 0 while n >= a : remain_bottle = n%a #나머지 = 남는 병 n = (n//a)*b #몫 = 새로 받는 콜라 개수 answer += n n += remain_bottle return answer 레퍼런스 정답 깃허.. 2023. 5. 11.
[프로그래머스 lv1] 옹알이(2) 사용 언어 - Python3 문제 - 옹알이(2) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 문자열 replace (정답 맞춘 여부 X) 발음가능한 언어(j)가 중복된 상태가 아니라면 => i안에 있는 j 값을 공백으로 대체한다. 전부 공백으로 대체되어있다면, 모두 발음가능하기 때문에 count += 1 def solution(babbling): count = 0 baby = ["aya","ye","woo","ma"] for i in babbling: for j in baby: if j*2 not in i: i = i.replace(j,' ') .. 2023. 5. 10.
[프로그래머스 lv1] 푸드 파이트 대회 사용 언어 - Python3 문제 - 푸드 파이트 대회 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 문자열 더하기 (정답 맞춘 여부 O) 문자열 순서 바꾸기 [::-1] def solution(food): num1 = '' answer = '' for i in range(1,len(food)): a = food[i]//2 # 몫(한 선수당) num1 += str(i)*a # a만큼 i를 출력해야함 answer += num1 answer += str(0) answer += num1[::-1] return answer 레퍼런스 정답 깃허브 GitHub.. 2023. 5. 9.
[프로그래머스 lv1] 과일 장수 사용 언어 - Python3 문제 - 과일 장수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 시간초과없이 계산 간편화하기 (정답 맞춘 여부 O) if문으로 사과를 버리는 경우와 안버리는 경우를 따로 계산하니까, 시간초과가 떴다. 두가지 경우에서 각자 복잡한 식으로 최대이익을 계산하기 때문이다. # 시간초과 def solution(k, m, score): answer = 0 score.sort() # 사과 점수에 따라 정렬 if len(score)%int(m) == 0: # 나누어 떨어지면, 모든 사과 포장 for i in range(0,m+1): .. 2023. 4. 26.
[프로그래머스 lv1] 기사단원의 무기 사용 언어 - Python3 문제 - 기사단원의 무기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 약수 시간초과 없이 구하기 (정답 맞춘 여부 X) 약수를 구하는 과정에서 이중 for문으로 인해 시간초과가 뜬다. # 시간초과 def solution(number, limit, power): # number 안의 약수 개수 = 공격력 무기 num = [] for i in range(1,number+1): cnt = 0 for j in range(1,i+1): if i % j == 0: cnt += 1 num.append(cnt) for i in ran.. 2023. 4. 25.
[프로그래머스 lv1] 명예의 전당 사용 언어 - Python3 문제 - 명예의 전당 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 if문 활용하여 리스트원소 빼고 더해주기 (정답 맞춘 여부 X) 리스트.remove() def solution(k, score): answer = [] stack = [] #명예의 전당 리스트 for s in score: if len(stack) < k: # 상위 k번째 이내이면 명예의 전당 stack.append(s) else: if min(stack) < s: stack.remove(min(stack)) stack.append(s) answer.app.. 2023. 4. 25.
[프로그래머스 lv1] 문자열 나누기 사용 언어 - Python3 문제 - 문자열 나누기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 해당 값이 앞 값과 같은지, 아닌지 확인해 개수 더해주기 (정답 맞춘 여부 X) 큐로 구현하려다가 실패했다. ㅠㅠ x 문자 개수(cnt1)와 x가 아닌 문자 개수(cnt2)를 구하는 문제 현재의 i가 앞서 저장한 k(한 문자 앞)와 같다면 cnt1 += 1 두 문자가 다르다면 cnt2 += 1 1. b k = b b == b: cnt1 = 1 2. a b != a: cnt2 = 1 def solution(s): answer = 0 cnt1, cnt2 =.. 2023. 4. 25.