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

[level 1] 숫자 짝꿍

https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제도 크게 두 부분으로 나눠서 풀어본다. 1) count() 함수를 사용해서 개수를 count해주고 원소가 두 정수에 존재할 경우에 더 작은 걸 take하기 => 위에 방법을 안하고 dictionary를 사용해서 해주었다. count는 복잡할것같아서.. 오히려 dictionary가 한번에 count하기가 더 편한 것 같다. (그치만 count를 사용한 방법도 잘 봐두자.) 2) 모아진 공통..

[level 1] 성격 유형 검사하기

https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최근에 인기많은 MBTI관련해서 카카오에서 문제가 나왔나보다. 근데 문제는 재미있는데 푸는건 안 재미있는..🤔 문제를 짧게 구분해서 풀어보자면 1) choices에 따라서 각 유형에 점수를 더해줌 2) 전체 합산에 따라서 result를 뽑아냄(이때 같은 카테고리에 있는 점수가 동점일 경우에 사전순으로 빠른걸로 return해야함 ) # 틀린 풀이 def solution(survey, choices..

[level 1] 신고 결과 받기

https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(id_list, report, k): answer = [0] * len(id_list) reported = {x: 0 for x in id_list} # 딕셔너리 사용 for r in set(report): # 중복방지를 위해 set 사용 a,b = r.split() reported[b] += 1 # 신고당한 유저들을 count하기 위해 for r in set(report)..

[level 1] 최소직사각형

https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이디어가 안 떠올라서 어떻게 풀어야될지 전전긍긍했었다.. 생각보다 되게 간단한 아이디어였고, 한 직사각형이 있으면 가로, 세로 두 길이 중 더 긴거를 w로 몰아서 넣은 다음에 w,h 리스트중 가장 max인 값을 서로 뽑으면 되는 풀이다. def solution(sizes): w=[] h=[] for i in sizes: if i[0]>=i[1]: w.append(i[0]) h.append(i[1..

[level 1] 숫자 문자열과 영단

https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): answer = 0 dic = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'} for key in dic.keys(): s=s.replace(key, dic[key]) return int (s) 딕셔너..

[level 1] 크레인 인형뽑기 게임

https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 뭔가 어려운 느낌이었는데 알고보니 쉬운 문제였다. stack을 이용한 구현문제이고, 괜히 어렵게 생각한것이 가장 큰 방해요인이었던 것 같다. def solution(board,moves): stack=[] count=0 for m in moves: for i in range(len(board)): if board[i][m-1]!=0: if stack and stack[-1]==board[i..

[level 1] 체육복

https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각할 점이 2가지가 존재한다. 1. 여벌의 체육복을 가진학생들도 도난을 당할수 있다는 것 2. i-1와 i+1의 학생들을 체크할 것 * 뭔가 헷갈렸던 점은 for i in reserve_del에서 i-1과 i+1로 바로 원소값에 대한 접근이었다. 그도 그럴것이 어차피 lost_del에 있는 원소(학생) 앞뒤로는 index가 상관이 없고, 단순히 앞이냐 뒤이냐가 중요한것이기 때문이다. def so..

[level 1] 수포자

https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #level1/모의고사 def solution(answers): answer = [] student_a=[1,2,3,4,5]*2000 student_b=[2,1,2,3,2,4,2,5]*2000 student_c=[3,3,1,1,2,2,4,4,5,5]*1000 a=0 b=0 c=0 find=0 new_answers=answers for i in range(len(answers)): if new_an..

[level 1] K번째

https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(array,commands): answer=[] while len(commands)!=0: numbers=array[commands[0][0]-1:commands[0][1]] numbers.sort() number=numbers[commands[0][2]-1] answer.append(number) commands.pop(0) return answer

[level 1] 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import collections def solution(p,c): p.sort() c.sort() result= collections.Counter(p)-collections.Counter(c) print(result) return list(result)[0] 나도 처음에는 collections을 쓸 생각을 못하고, for p in participant에서 for c in completion을 ..