본문 바로가기
728x90

알고리즘141

[PG/Python] 거리두기 확인하기 📌 문제 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 📌 문제 접근 방법 각 대기실마다 함수를 사용하여 거리두기가 잘 되어있는 지 확인.. 2022. 1. 8.
[PG/Python] 숫자 문자열과 영단어 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 📌 문제 접근 방법 영단어 숫자와 일반 숫자를 짝지어서 딕셔너리에 저장한다. 문자열을 순회하며 숫자일 경우 바로 answer에 append하고 문자일 경우 temp에 더해준다. 다시 숫자를 만나면 temp에 저장된 값을 함수에 넣어서 숫자로 변환해준다. 영단어 숫자를 살펴보니 길이가 3, 4, 5로만 이루어져 있어서 3, 4, 5만큼 끊어서 .. 2022. 1. 8.
[PG/Python] 보석 쇼핑 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 📌 문제 접근 방법 맨 처음에 짠 코드는 각 보석들의 인덱스를 딕셔너리에 저장한 후, 보석마다 가장 뒤에 있는 인덱스를 start에 담아주고 가장 앞에 있는 인덱스를 end에 담아줬다. 그 후, start에서 가장 작은 값과 end에서 가장 큰 값을 범위로 설정하면 최소의 길이로 모든 보석을 포함하는 구간을 찾을 수 있다. -> 하지만 짧은 구간이 여러 개일 경우 시작 진열대 번호가 가장 작아야 한다는.. 2022. 1. 8.
[PG/Python] 베스트앨범 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 📌 문제 접근 방법 앨범에 노래를 수록하는 조건의 순서는 다음과 같다. 속한 노래가 많이 재생된 장르 - 장르 내에서 많이 재생된 노래 - 재생 횟수가 같은 경우 고유 번호가 낮은 노래 아직 lambda 사용이 익숙치 않아서 원하는 대로 정렬을 하는 게 어려웠다. 하지만 정렬만 제대로 한다면 어렵지 않은 문제! 📌 코드 from collections .. 2021. 12. 29.
728x90