[다이나믹 프로그래밍] list를 value로 갖는 dict 생성하기, enumerate() 함수, dict 첫 번째 key, value 가져오기 + 개미전사
·
코딩 테스트 일지 📒
list를 value로 갖는 dict 생성하기dicts={}for i in range(len(lists)): #key = value dicts[i]=lists[i]위 코드를 통해 리스트의 각 원소를 value로, 각 원소의 인덱스를 key로 가지는 딕셔너리를 만들 수 있습니다.여기서 len(lists)를 대체할 수 있는 함수가 있는데요!바로 enumerate입니다.dicts={}for i in enumerate(lists): #key = value dicts[i]=lists[i]enumerate() 함수는 반복 가능한 객체(예: 리스트)를 입력으로 받아 각 요소와 해당하는 인덱스를 포함하는 이터레이터를 반환합니다. 이렇게 함으로써 코드를 더 간결하게 작성할 수 있습니다.여기서 enumerate()..
[DFS] 백준_양 한마리... 양 두마리...
·
코딩 테스트 일지 📒
문제얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지.  그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!"  정말 도움이 안되는 친구라고 생각했었지. 그런데 막상 또 다시 잠을 청해보려고 침대에 눕고 보니 양을 세고 있더군... 그런데 양을 세다보니 이걸로 프로그램을 하나 짜볼 수 있겠단 생각이 들더군 후후후... 그렇게 나는 침대에서 일어나 컴퓨터 앞으로 향했지.양을 # 으로 나타내고 . 으로 풀을 표현하는 거야. 서로 다른 # 두 개 이상이 붙어있다면 한 무리의 양들이 있는거지. 그래... 좋았어..! 이걸로 초원에서 풀을 뜯고 있는 양들을 그리드로 표현해 보는거야!그렇게 나는 양들을 그리드로 표현하고 나니까 갑자..
[그리디] 백준_흙길 보수하기
·
코딩 테스트 일지 📒
어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N(1 ≤ N ≤ 10,000)개의 물웅덩이가 생겼다. 월드학원은 물웅덩이를 덮을 수 있는 길이가 L(1 ≤ L ≤ 1,000,000)인 널빤지들을 충분히 가지고 있어서, 이들로 다리를 만들어 물웅덩이들을 모두 덮으려고 한다. 물웅덩이들의 위치와 크기에 대한 정보가 주어질 때, 모든 물웅덩이들을 덮기 위해 필요한 널빤지들의 최소 개수를 구하여라.입력 예3 31 613 178 12첫째 줄에 두 정수 N과 L이 들어온다.둘째 줄부터 N+1번째 줄까지 총 N개의 줄에 각각의 웅덩이들의 정보가 주어진다. 웅덩이의 정보는 웅덩이의 시작 위치와 끝 위치로 이루어진다. 각 위치는 0 이상 1,000,000,000 이하의 정수이다..
[구현] 백준 5430_AC
·
코딩 테스트 일지 📒
https://www.acmicpc.net/problem/5430 5430번: AC각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.www.acmicpc.net선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "..
[DFS] 백준_양치기 꿍
·
코딩 테스트 일지 📒
https://www.acmicpc.net/problem/3187 3187번: 양치기 꿍입력의 첫 번째 줄에는 각각 영역의 세로와 가로의 길이를 나타내는 두 개의 정수 R, C (3 ≤ R, C ≤ 250)가 주어진다. 다음 각 R줄에는 C개의 문자가 주어지며 이들은 위에서 설명한 기호들이다.www.acmicpc.net사이클을 찾아야하는 문제이니 DFS를 사용했습니다.어떤 범위(울티리 안, 미로 공간) 안에서 개수 찾는 문제는 DFS를 통해 구현하고, 최단거리(최단경로)를 구해야하는 문제는 BFS를 이용하여 구현하고 있습니다.재귀적으로 구현하였는데, 이때 sys.setrecursionlimit 함수를 통해 재귀한도를 지정하지 않으면 런타임에러가 뜨니 주의하셔야 합니다!DFS 구현 방식은 다음과 같습니다...
[그리디] 백준_30
·
코딩 테스트 일지 📒
https://www.acmicpc.net/problem/10610 10610번: 30어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한www.acmicpc.net이 문제를 보고 처음 든 30의 배수임을 확인하는 방법은 다음과 같다.아이디어: 모든 문자 조합 만들기 -> 30으로 나눠서 떨어지는지 확인 -> 제일 큰 지 확인... 그리디?그리디 문제인데 위와 같이 구하면 무조건 시간 초과가 날 거 같아 30의 배수임을 확인하는 다른 방법을 생각해 봤다.아이디어 30의 배수는 3과 10의 배수이어야 함. 10의 배수이려면 끝자리가 0이어야 함.3의 배수이려면 각 자..
[이진탐색] 백준_파닭파닭
·
코딩 테스트 일지 📒
https://www.acmicpc.net/problem/14627 14627번: 파닭파닭첫째 줄에 승균이가 시장에서 사 온 파의 개수 S(1 ≤ S ≤ 1,000,000), 그리고 주문받은 파닭의 수 C(1 ≤ C ≤ 1,000,000)가 입력된다. 파의 개수는 항상 파닭의 수를 넘지 않는다. (S ≤ C) 그 후, S 줄에www.acmicpc.net이 문제를 풀기 위한 아이디어는 이진탐색범위와 탐색기준을 제대로 설정하는 것입니다!이진탐색범위 : 파의 길이 1~가장긴파의길이 이진탐색기준 : mid길이로 잘랐을 때 파닭의 수가 padack_cnt보다 크면, mid를 더 크게 잘라서 파닭의 수를 줄여야하므로 오른쪽탐색(start=mid+1), mid길이로 잘랐을 때 파닭의 수가 padack_cnt보다 작으..
[DFS] 백준_적록색약 + sys.setRecursion, sys.stdin.readline, rstrip
·
코딩 테스트 일지 📒
https://www.acmicpc.net/problem/10026 10026번: 적록색약적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록)www.acmicpc.net이 문제는 사이클을 확인해서 구역의 개수를 세는 문제이기 때문에 DFS가 적합합니다.DFS와 BFS 문제를 구분하는 방법은 아래 글에서 자세히 설명해두었습니다!https://blu-blu.tistory.com/5 [DFS & BFS] 음료수 얼려먹기 + 2차원 리스트 생성 및 입력 방법2차원 리스트 생성 및 입력 방법 0. 0으로 채워진 2차원 리스트 생성하기 my_list = [[0 for _..
[이진탐색] 프로그래머스_입국심사
·
코딩 테스트 일지 📒
n명이 입국심사를 위해 줄을 서있고, 입국심사관이 한 명을 심사하는 데 걸리는 시간이 담긴 배열 times가 있다. 기다리는 시간과 심사 시간까지 합해서 모든 사람이 심사를 받는 데 걸리는 시간의 최솟값을 return 해야 한다.입출력 예ntimesreturn6[7, 10]28입출력 예 설명가장 첫 두 사람은 바로 심사를 받으러 갑니다. 7분이 되었을 때, 첫 번째 심사대가 비고 3번째 사람이 심사를 받습니다. 10분이 되었을 때, 두 번째 심사대가 비고 4번째 사람이 심사를 받습니다.14분이 되었을 때, 첫 번째 심사대가 비고 5번째 사람이 심사를 받습니다.20분이 되었을 때, 두 번째 심사대가 비지만 6번째 사람이 그곳에서 심사를 받지 않고 1분을 더 기다린 후에 첫 번째 심사대에서 심사를 받으면 2..
[이진탐색] 정렬된 배열에서 특정 수의 개수 구하기
·
코딩 테스트 일지 📒
문제N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 단, 이 문제는 시간 복잡도 O (log N)으로 알고리즘을 설계하지 않으면 시간 초과 판정을 받습니다.입력 조건 : 첫째 줄에 N과 x가 정수형태로 공백으로 구분되어 있고, 둘째 줄에 N개의 원소가 정수 형태로 구분되어 입력된다.출력 조건 : 수열의 원소 중에서 값이 x인 원소의 개수를 출력하고, x인 원소가 하나도 없다면 -1을 출력한다.https://www.youtube.com/watch?v=94RC-DsGMLo&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=522:35에 나오는 문제입니다.만약, 이 문제의 제한조건에 시간복잡도가 O(log ..
코양이🤍
'코딩 테스트 일지 📒' 카테고리의 글 목록 (6 Page)