나무 자르기https://www.acmicpc.net/problem/14247실패(시간 초과). 그 날에 가장 많이 자라있는 나무 자르는 것시간 복잡도가 O(N^2) 이라 시간초과가 나는 것이 어쩌면 당연했을 지도,,성공. 가장 자라는 속도가 빠른 걸 가장 적
병든 나이트https://www.acmicpc.net/problem/1783조건에 따라 최대한의 개수를 가져가도록 하자. gpt 코드 최적화아래와 같은 코드로 최적화를 해주었는데, 문제의 조건을 반영하지 못했다.조건들을 최적화 하는 것. 여러 조건들이 있을 때
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.볼링공 고르기볼링공의 개수 n과 볼링공의 무게 m개와 각 볼링공이 주어질 때, 2명의 플레이어가 서로 다른 무게를 고를 경우의 수를 고르시오단, 무게가 같아도 다른 볼링공으로 간주한다.실패. 리스트를
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.만들 수 없는 금액N 개의 동전을 가지고 있습니다. 이때 N개의 동전으로 만들 수 없는 가장 작은 양의 정수 금액을 구하는 프로그램을 작성하세요실패 값을 하나씩 더해나가는 과정을 거치며 추가해나간 리스
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.문자열 뒤집기0과 1로 이루어진 문자열이 주어진다.연속된 하나 이상의 숫자를 뒤집어 동일한 숫자가 연속하도록 해야한다.연속된 숫자를 뒤집는 최소 횟수를 구하라0에서 1로 변할 때와 1에서 0으로 변하는
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.곱하기 혹은 더하기각 자리가 숫자 0-9로 이루어진 문자열 s가 주어졌을 때숫자 사이에 +, \* 연산자를 넣어 가장 큰 수를 만드는 프로그램단, 연산의 우선 순위는 항상 왼쪽에서 오른쪽으로 진행한다.
회의실 배정https://www.acmicpc.net/problem/1931가장 먼저 끝나는 것을 먼저 선택하는 방식으로 구현을 했다. 가장 먼저 시작하는 것을 선택하는 방식과 가장 짧은 것을 선택하는 방식은 반례를 찾을 수 있었다. 하지만 가장 먼저 끝나는
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.모험가 길드 길드는 n명으로 이루어져 있고, 모두 공포도 x를 가진다. 공포도가 x인 모험가는 x명의 파티월을 이루어 여행을 떠나야한다. 여행을 떠날 수 있는 최대 파티의 개수를 구하라. 단, 모든 모
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.1이 될 때까지어떤 수 n이 1이 될 때까지 다음 두 과정 중 하나를 반복적으로 선택하여 수해하고자 한다. 단, 1번째 연산은 n이 k로 나누어 떨어질 때만 선택할 수 있다. n에서 1을 뺀다. n을
나동빈님의 '이것이 코딩 테스트다'를 보고 공부한 내용을 정리합니다.숫자 카드게임 1\. 숫자가 쓰인 카드들이 n \* m 형태로 놓여있다. n은 행개수, m은 열개수 의미한다. 2\. 뽑고자하는 카드가 포함되어있는 행을 선택한다. 3\. 그다음 선택된 행에 포함된 카
큰 수의 법칙다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 k번을 초과하여 더해질 수 없다. 단, 인덱스가 다르면 값이 달라도 다른 값으로 취급한다. 처음 접근 방식 - 2중
보다 큰 수가 있다면, 1을 반환하고, 아니면 0을 반환하는 메서드를 이용하여 2중 for문을 돌려 문제를 해결했다.
빈도수 출력이 관건이었다. 빈도수는 딕셔너리를 이용해 키 벨류 형식으로 저장했고, 벨류를 기준으로 정렬한 다음, 최대 빈도의 키값만 따로 리스트로 구성해서, 출력했다.
모든 수를 나누어 보는 것보다 효율적인 sqrt한 값까지 나누어보는 것을 수행하는 방식을 사용하였다. 하지만 시간초과로 나왔고, 원인은 flag를 처리하는데 시간이 소모되었던 것 같다. 그래서 아래와 같이 함수를 정의하여 flag if문 없이 함수의 리턴 값으로 처리해
오늘은 Cron 모듈을 완성시키고자 하였다. cron 모듈은 일주일치의 기록을 평군으로 한 주의 기록으로 데이터를 변형시켜 저장하고자 만든 모듈이다. 일주일치의 기록을 하나의 평균으로, 4개 주차의 기록을 하나의 평균으로 변형하여 저장하게 된다. 프론트에서는 초기 설계
파이썬의 리스트를 원형큐 형식으로 인덱스 0의 수를 마지막 인덱스로 넣어주고, k번째에는 수를 출력하고 삭제하는 방식이다.
오늘은 기존의 너의 하루는 프로젝트가 무르익은 것 같아, 배포를 위한 발판을 마련하고자 했다. 배포는 연구실에 있는 서버용 컴퓨터를 사용하기로 했다. 해당 서버는 도커가 깔려있어, 하나의 컴퓨터에서 여러개의 프로젝트를 배포운영할 수 있을 것 같았다. 아래 에서 아파치
2진 탐색을 이용했다. 길이를 이진 탐색으로 특정하고, 이를 for 문으로 일일이 랜선을 나누어보는 작업이다. 그래서 시간 복잡도는 NlogN 이다. 특이한 점은 정답이 될 수 있는 여러 값 중 가장 큰 값을 구하는 것이다. Upper Bound 개념을 이용하면 될 것
리스트를 정렬한 뒤 가장 긴 나무부터 작은 나무 순으로 내려오며, 총 길이를 계산한다. 만약 총 길이가 m보다 커지면, 커진 값을 지나온 나무의 숫자만큼 나누어서, 현재 나무 길이에 더해주면 끝이다. 문제의 분류가 이진 탐색인데, 이진 탐색으로 어떻게 구현할 수 있는