분류 전체보기 275

[백준/알고리즘/python/java] 5464번 - 주차장

차근차근 문제에서 주어진 로직을 풀어보면, 그다지 어렵지 않은 문제였다. 문제의 로직은 따로 설명하게 없을 정도로, 문제에서 주어진 대로 그대로 구현하면 다들 풀 수 있을 것이다. 처음 입력받는 N과 M은 각각 '주차장 공간의 수'와 '차량의 수'이다. 모든 차량은 한 번씩 주차장에 들어갔다가 나오므로 (차량의 수 *2) 만큼의 출입 순서를 입력받아야 했다. 우선 index오류를 막기 위해, '요금을 나타내는 리스트'와 '각 차량의 무게를 나타내는 리스트'를 빈 리스트 [] 가 아닌 [0]으로 시작했다. 들어오는 출입 순서를 덱으로 큐화 시켰다. popleft()를 쓰기 위함이다. 이 출입리스트가 빌 때 까지, 계산을 반복한다. 이 문제에서 생각해야 할 관건은 크게 2가지만 생각해주면 됐다. 주차 가능한..

[백준/알고리즘/python/java] 1535번 - 안녕

일단, 나도 처음에 틀렸던 문제다. 그리디 문제로 접근을 했었고, 문제를 풀었는데, '예제 입력 5' 와 같은 반례에 부딪혔다. 나의 로직은 이러했다. 문제에서 1번 사람부터 N번 사람까지 순서대로 잃는 체력리스트와 얻는 기쁨 리스트를 입력받는다. 세준이가 얻을 수 있는 최대 기쁨을 출력하는 것이므로, [hp(체력), joy(기쁨)]을 쌍으로 갖는 새로운 리스트를 만든 후에, joy(기쁨)을 기준으로 내림차순 정렬을 한다. 그러면, 큰 joy(기쁨)를 가지는 쌍이 앞에 오겠고 해당하는 hp(체력)을 초기 HP(100)에서 빼가면서 음수나 0이 아니면, 해당 joy(기쁨)을 그대로 더해주면서 for문을 순회하도록 로직을 짰다. 처음에 짠 로직은 아래와 같다. import sys input = sys.std..

[백준/알고리즘/python/java] 11000번 - 강의실 배정

작년에 풀었던 문제인데, 제대로 이해를 하지 않고 넘어갔었던 느낌이 들어 다시 풀어본 문제이다. 거의 기억이 안나서 새로 푼 문제나 다름이 없었는데, 총 3번의 시련을 겪었다. 가장 먼저, 잘못된 로직으로 문제를 풀어나가기 시작했다. 예를 들어, 입력값이 3 1 98 98 99 99 100 이 주어졌다고 하면, 답은 어떻게 나올까? 답은 3이 나와야 한다고 생각한다면, 나와 똑같은 실수를 한 셈이다. 답은 1이 나와야 한다. 1~98 , 98~99, 99~100 이렇게 겹치지 않고, 1강의실만을 이용해서 강의를 배정할 수 있기 때문이다. 첫 번째 시련을 겪고, 빠르게 로직에 대해서 생각해봤다. 대충 로직은 이러했다. 입력 받은 "강의가 시작되는 시간"과 "강의가 끝나는 시간"을 강의 리스트를 (강의 시작..

[Github/깃헙] Repository(레파지토리) 이동하는 방법 - clone/mirror

Github에서 Organization이나 다른 레포에서 진행했던 레파지토리를 commit 등의 기록과 함께 또 다른 내 개인 레포로 옮기고 싶을 때는 어떻게 할까? CMD창을 열어 쉽게 해결할 수 있다. git clone --mirror {기존 레파지토리} cd {기존 레파지토리 명}.git git remote set-url --push origin {신규 레파지토리 주소} git push --mirror [적용 사례] 저번 알고리즘 스터디를 진행했던 organization의 기존 Repository 를 https://github.com/DLSK-study/letzgorats.git 라고 해보자. (해당 레포가 있는 주소는 초록색 Code탭에서 복사할 수 있다.) 위의 레포를 새로운 repository..

2차원 배열에서 최댓값 찾기

우리는 코딩을 하면서 또 알고리즘 문제를 풀면서, 2차원 배열을 정말 많이 쓴다. 2차원 배열을 한줄로 빠르게 생성하는 List Comprehension을 종종 사용하곤 하는데, 그러면 2차원 배열에서 어떤 원소값이 가장 큰 값인지 한번에 찾는 방법은 없을까? 물론, for문으로 배열을 돌면서 입력값 하나하나를 비교해가면서 찾을 수야 있겠지만, 빠르게 찾는 방법이 있으니까 한번 배워보자. ◆ max 값을 사용하면 되는 것 아닐까? vertices = [[1, 7, 12], [4, 7, 13], [1, 5, 17], [3, 5, 20], [2, 4, 24], [ 1, 4, 28], [3, 6, 37], [5, 6, 45], [2, 5, 62], [1, 2, 67], [5, 7, 73]] numvert = ..

반응형