본문 바로가기

전체 글

(85)
튜플 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 내 풀이 "{{2},{2,1},{2,1,3},{2,1,3,4}}" 문자열을 [{2}, {2,1}, {2,1,3}, {2,1,3,4}]와 같이 원소의 자료형이 set()인 리스트 lst를 만들었다. 그리고 lst를 길이가 짧은 원소가 앞에 오도록 정렬하였다. lst를 돌면서 현재 원소와 앞의 원소와의 차집합..
수식 최대화 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 내 풀이 permutations를 사용해서 (+, -, *)로 만들 수 있는 모든 우선순위 조합인 9가지 경우의 수를 구하였다. 그리고 수식에서 숫자와 연산자를 분리하여 리스트에 넣었다. ex) ['100', '+', '200', '-', '50', '*', '2'] 9가지 우선순위 조합에 해당하는 연산 값을 각각 구하였다. 값을 구할 때 stack을 사..
거리두기 확인하기 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 내 풀이 대기실에서 'P'의 좌표를 따로 저장한다. 'P' 간의 거리를 구하기 위해 ..
뉴스 클러스터링 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 내 풀이 먼저 str1과 str2의 다중집합을 만든다. isalpha() 함수로 영문자만 포함하도록 하였다. Counter를 사용하여 다중집합의 구성을 파악하였다. 교집합은 다중집합 한 개를 선택하고 그 다중집합의 모든 원소를 돌게 하여 구하였다. 합집합은 중졸이면 다 아는 n(A∪B) = n(A) + n(B) - n(A∩B) 공식을 ..
실패율 (Level 1) 문제 https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 내 풀이 Counter 함수를 써서 각 스테이지에 몇 명이 머물러 있는지 구하였다. (현재 스테이지에 도달한 플레이어 수 = 전 단계 스테이지에 도달한 플레이어 수 - 전 단계에 실패한 플레이어의 수) 공식을 사용하였다. 스테이지에 도달한 유저가 없는 경우를 위해 예외 처리를 하였다. from collections import Counter def solu..
괄호 변환 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 내 풀이 그냥 문제에서 하라는 대로 했다. # 올바른 문자열인지 확인하는 함수 def is_correct(p): cnt = 0 for a in p: if a == '(': cnt += 1 else: cnt -=1 if cnt < 0: return False if cnt == 0: return True else: return False # 균형잡힌 문자열을 u..
메뉴 리뉴얼 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 내 풀이 orders를 돌면서 order 안에서 c개의 조합으로 만들 수 있는 모든 경우를 combinations를 사용해서 구하였다. course를 돌 때마다 딕셔너리를 만들어서 조합이 몇 개 나왔는지 카운트를 세고, MAX에 카운트가 가장 많은 것을 저장한다. 딕셔너리를 돌면서 MAX와 같은 숫자만큼 카운트를 가진 원소를 answer에 저장한다. from..
크레인 인형뽑기 게임 (Level 1) 문제 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 내 풀이 moves는 board에 접근할 (column index + 1)이다. moves를 돌면서 board의 column에 접근하여 가장 위에 있는 숫자를 bucket에 넣었다. bucket이 빈 공간이 될 때까지, bucket의 원소를 stack에 넣었다. bucket에서 뺀 인형이 stack의 마지막 원소와 동일하면 stack에서 pop을 하였다. pop을 할 때 answer..