[프로그래머스] 경주로 건설 - Python
2022. 2. 21. 04:17
Algorithm/프로그래머스
🤔 문제 https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 😀 풀이 본 문제는 DFS와 메모제이션 기법을 사용해서 풀이했습니다. DFS를..
[프로그래머스] 신고 결과 받기 - Python
2022. 1. 18. 03:28
Algorithm/프로그래머스
🤔 문제 https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 😀 풀이 위 문제는 report의 크기를 고려해보았을 때 단순 배열을 사용하면 시간이 모자랄 수 있을 것이라 예상할 수 있습니다. 따라서 신고 내역을 Python의 dict 자료형으로 다루어 풀이를 진행했습니다. 신고 내역을 다루는 dict 자료형의 key 값은 신고당한 유저, value 값은 신고한 유저들로 정했습니다. 또한 문제 조건에 따라 ..
[프로그래머스] 합승 택시 요금 - Python
2022. 1. 15. 16:34
Algorithm/프로그래머스
🤔 문제 https://programmers.co.kr/learn/courses/30/lessons/72413?language=python3 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 😀 풀이 이 문제에서 합승 택시 요금의 최소..
[프로그래머스] 거리두기 확인하기 - Python
2022. 1. 13. 21:27
Algorithm/프로그래머스
🤔 문제 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 😀 풀이 해당 문제는 두가지 풀이가 가능할 것 같습니다. BFS를 사용하여 응시자..
[프로그래머스] 키패드 누르기 - Python
2022. 1. 12. 01:37
Algorithm/프로그래머스
🤔 문제 https://programmers.co.kr/learn/courses/30/lessons/67256?language=python3 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 😀 풀이 간단한 구현 문제라 가벼운 설명과 코드만 첨부하겠습니다. 문제 조건에 맞게 눌러야 하는 손을 정해주고 누른 후 해당 손의 위치를 바꿔주며 답을 만들어 나가면 되는 문제였습니다! 💻 풀이 코드는 아래와 같습..
[프로그래머스] 무지의 먹방 라이브 - Python
2022. 1. 1. 23:08
Algorithm/프로그래머스
문제 https://programmers.co.kr/learn/courses/30/lessons/42891 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr 풀이 이 문제는 효율성을 고려해서 풀 때 어떻게 해야할지 고민을 좀 하게된 문제입니다. 효율성을 고려하지 않은 경우 문제에 주어진 대로 시간이 1초씩 줄어듬에 따라 배열에 있는 숫자를 순차적으로 1씩 빼주는 과정을 거쳐주면 쉽게 풀립니다. 하지만 효율성 테스트의 제한 사항 입력 크기를 보면 이러한 방법은 당연하게도 시간초과가 날 것 같아 다른 방법을 생각해야만 했습니다. 가장 먼저 떠오른 생각은 다음과 같습니다. k 값이 충분하다면 음식을 다 먹는데 드는 시간이 가장 적은 것부터 처리해버리자! 위와 같은 생각을 거치니 우선순위 ..
[프로그래머스] 문자열 압축 - Python
2021. 12. 30. 17:56
Algorithm/프로그래머스
문제 https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 입력으로 주어지는 문자열 s의 길이가 1000이고 문제 상황에 맞게 모든 압축 단위로 압축을 해보아도 시간 상 무리가 없을 것 같아 완전 탐색을 시도해보았습니다. 문자열이 압축될 수 있는 모든 경우 즉, 압축 단위를 1 부터 (s의 길이 // 2) 까지 바꿔가며 전부 압축을 해보고 이전까지 구한 가장 짧은 압축 길..