본문 바로가기

Algorithm231

[프로그래머스 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) 문자열 삭제 del stack[-4:] def solution(ingredient): #1,2,3,1 빵, 야채, 고기, 빵 stack = [] ham = 0 for i in ingredient: stack.append(i) if stack[-4:] == [1,2,3,1]: ham += 1 del stack[-4:] return ham 레퍼런스 정답 깃허브 GitHub - yyeongeun/codingtest: 코.. 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.
[프로그래머스 lv1] 가장 가까운 같은 글자 사용 언어 - Python3 문제 - 가장 가까운 같은 글자 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 리스트 거꾸로해서 index 찾기 (정답 맞춘 여부 O) list_a 라는 빈 리스트를 생성하여, list_a에 있다면 원소값을 찾아준다. 리스트 순서 거꾸로 [::-1] 해서 index 값을 찾으면 가장 가까운 같은 글자의 위치를 찾을 수 있다. 원소가 없다면 -1을 추가해준다. 한 글자를 처리한 후에 list_a에 append해준다. def solution(s): answer = [] list_a = [] for i in s: if i in.. 2023. 4. 25.
[프로그래머스 lv1] 둘만의 암호 사용 언어 - Python3 문제 - 둘만의 암호 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 리스트 원소값 replace & index 찾기 (정답 맞춘 여부 X) 리스트명.replace(바꾸려는 값, 바꿀 값) 리스트명.index(인덱스 찾으려는 값) 전체리스트 개수를 len(alpha) 값으로 나눈 몫을 구하면, len(alpha)가 z 값을 넘어서도 a부터 다시 시작할 수 있다. 문자열을 더할 때는 + 로도 가능하다 def solution(s, skip, index): answer = '' alpha = 'abcdefghijklmnopqrs.. 2023. 4. 25.
[프로그래머스 lv 1] 카드 뭉치 사용 언어 - Python3 문제 - 카드 뭉치 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐를 활용 (정답 맞춘 여부 O) cards1과 cards2를 deque로 저장하여 맨 왼쪽 값과 값이 같을 경우, popleft()로 없애준다. 큐 값이 있을 경우에만 popleft()를 해줘야하기 때문에, if card1을 꼭 적어줘야한다 from collections import deque def solution(cards1, cards2, goal): card1 = deque(list(cards1)) card2 = deque(list(cards2)).. 2023. 4. 24.