알고리즘/프로그래머스
-
[2018 KAKAO BLIND RECRUITMENT] [3차] 압축알고리즘/프로그래머스 2021. 8. 22. 09:32
https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr - 풀이 1. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. - 리스트 d에 초기화사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다. - 사전의 뒤에서 부터 검색하며, re.match로 w를 찾는다. (뒤에서부터 검색해야 가장 길게 일치하는 것이 찾아진다.) 2. w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다. - 사전의 색인번호를 answer에..
-
[2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어알고리즘/프로그래머스 2021. 8. 20. 19:59
https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr - 풀이 매우매우 쉽다. def solution(s): dic = {0:'zero', 1:'one', 2:'two', 3:'three', 4:'four', 5:'five', 6:'six', 7:'seven', 8:'eight', 9:'nine'} for i in dic: s = s.replace(dic[i], str(i)..
-
[2020 카카오 인턴십] 보석 쇼핑알고리즘/프로그래머스 2021. 8. 17. 20:58
https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 효율성 테스트를 통과 못해서 애먹었다. 1. 처음에 짰던 코드, 당연히 효율성에서 다 틀렸다. def solution(gems): answer = [0, 100000] glist = [] for i in gems: if i not in glist: glist.append(i) case = [] for i in range(len(gems)): glist2 = [] for j in range(i, len(gems)..
-
[2020 카카오 인턴십] 수식 최대화알고리즘/프로그래머스 2021. 8. 16. 15:23
https://programmers.co.kr/learn/courses/30/lessons/67257# 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr - 풀이 1. 연산자가 3가지 이므로, 연산자의 우선순위 경우는 3! = 6가지가 있다. 2. expression을 숫자는 operand, 연산자는operator에 쪼개 나눈다. 3. 연산자의 우선순위 경우에 따라, 식을 계산하여 가장 큰 값이 answer에 남게한다. import re def solution(expression): answer = 0 op ..
-
[2021 카카오 채용연계형 인턴십] 거리두기 확인하기알고리즘/프로그래머스 2021. 8. 15. 19:48
https://programmers.co.kr/learn/courses/30/lessons/81302?language=python3#fn1 코딩테스트 연습 - 거리두기 확인하기 [["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 - 풀이 탐색을 활용해 풀어볼까도 했는데, 대기실 5..
-
[2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 행렬 테두리 회전하기알고리즘/프로그래머스 2021. 8. 14. 20:29
https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 문제 설명 rows x columns 크기인 행렬이 있습니다. 행렬에는 1부터 rows x columns까지의 숫자가 한 줄씩 순서대로 적혀있습니다. 이 행렬에서 직사각형 모양의 범위를 여러 번 선택해, 테두리 부분에 있는 숫자들을 시계방향으로 회전시키려 합니다. 각 회전은 (x1, y1, x2, y2)인 정수 4개로 표현하며, 그 의미는 다음..
-
[2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 로또의 최고 순위와 최저 순위알고리즘/프로그래머스 2021. 8. 14. 15:02
https://programmers.co.kr/learn/courses/30/lessons/77484# 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 매우쉽다. // 로또 : 1~45숫자 중 6개를 찍어 맞춤(순서 상관 x) // 일치한 번호에 따라 1~5순위 까지(6개일치 ~ 2개일치) #include #include #include // lottos_len은 배열 lottos의 길이입니다. // win_nums_len은 배열 win_nums의 길이입니다. i..