소프티어\_회의실 예약
소프티어\_바이러스쉽다고 생각했는데 10^8까지 가기 때문에 오버플로우 발생한다.각 과정마다 1000000007을 충실히 나누어주어야하고,python에서 math.pow와 pow도 다르다.math.pow는 인자가 두개이고 math.pow(a, b) = a^b pow는
소프티어\_장애물 인식 프로그램
소프티어\_징검다리dp문제.문제 이해를 제대로 못했어서 틀렸다.
출력할 때이렇게 하면 결과는 똑같은 것 같은데 테스트 값이 다르다고 나온다.값을 string형식으로 바꿔서 ' '.join()을 이용해야 맞다고 나온다.
소프티어\_전광판최대 다섯자리 숫자이므로 두 숫자를 모두 다섯자리로 맞춘다.이 때, 맨 앞자리에 공백을 붙여 문자열로 만든다.
소프티어\_GBC길이가 100까지로 정해져있으므로 배열 만들어 저장해서 값 비교하기.
소프티어 LV.2 \_금고털이처음에는 그냥 리스트에 받아 정렬했는데(sort함수 사용) 시간초과가 떴다.제약 조건이 1 ≤ N ≤ 10^6인 정수1 ≤ W ≤ 10^4인 정수1 ≤ Mi, Pi ≤ 10^4인 정수이렇게 되다보니 다 받아서 정렬하지 말고 힙을 사용해야한다
소프티어 LV.3\_성적평균소수 셋째자리에서 반올림하고, 소수 둘째자리까지 표현한다.Pythonf 는 실수를 출력할 때 사용하는 서식문자열. '%'문자열과 함께 'f' 서식 문자를 사용하면 실수를 포함한 문자열을 반올림하면서 포맷팅할 수 있다.이 때 출력하길 원하는 값
소프티어 LV.3\_\[HSAT 5회 정기 코딩 인증평가 기출] 성적평가처음에 문제에서 말한 것처럼(자신보다 높은 점수의 사람 수 세어 rank기록) 충실히 구현. 일부 테스트케이스에서 시간초과.참가자가 10^5명까지 가능하기 때문에..
소프티어 LV.3\_순서대로 방문하기bfs : 최단거리dfs : 가능한 모든 경로. 각 경로별 특징을 기억해야할 때백트래킹 : dfs랑 비슷해보일 수 있는데 유망한 곳만 추려낸다.
소프티어 LV.3\_자동차 테스트처음에 푼 방법 => 시간초과.두번째 이진탐색 파이썬 bisect함수 이용 => 여전히 시간초과.이유 : if m not in c:파이썬 이진탐색 함수는 반드시 오름차순 정렬되어있을 때 사용해야하고,bisect_left(리스트, 값)는
백준 1644 소수의 연속합문제 해결 아이디어)입력값까지의 소수들을 리스트에 담고,투포인터로 리스트의 연속된 소수들이 입력값을 만드는지 확인한다.리스트 생성: 우리는 소수인지 여부를 저장할 리스트를 만듭니다. 이 리스트의 인덱스는 숫자를 나타내며, 각 인덱스에 해당하는
프로그래머스 등굣길문제 해결 아이디어)dp이용. 주의사항은 원 모양이기 때문에 첫번째 집을 털면 마지막 집은 털 수 없다.각각의 경우를 나누어 더 큰 쪽을 return
모음사전백트래킹을 이용해서 풀자. nonlocal은 중첩 함수(내부 함수)에서 외부 함수의 변수를 수정할 수 있도록 해줍니다.변수를 전역 변수로 만들어서, 프로그램 어디에서나 접근 가능하게 합니다.
전력망을 둘로 나누기dfs 풀이bfs 풀이union-find 풀이
타겟 넘버dfsbfs
네트워크bfsdfs - stack
아이템 줍기처음에는 두배로 늘리지 않고 풀었다.이렇게 되면 길이(차이)가 1인 부분에 대해 바깥 테두리를 가지 않고 바로 뚫어버리는.. 문제가 발생한다. --> 이 부분을 어떻게 해결해야할 지 결국 몰라서 해답을 찾아봤다.(자세한 설명 : https://jye
전화번호 목록데이터가 1,000,000개까지 가니까 최대 시간복잡도를 O(nlogn)까지 끊어야한다. => 파이썬의 정렬 사용 가능.시간 복잡도를 줄이려고 정렬해서 덱과 스택을 사용했다. 근데 위 풀이가 더 간단하다.문제에서 의도한 해시맵 풀이
베스트앨범딕셔너리 만들고 나서 세개의 조건으로 정렬을 해야하는데이 부분이 좀 까다롭다.딕셔너리의 .items() 메서드는 (key, value) 형태의 튜플로 구성된 리스트를 반환한다.music = {'classic': (500, 0), (150, 2), (800, 3
구명보트처음에 O(n^2)로 비효율적으로 풀었다.people을 정렬하고, 첫번째 원소와 마지막 원소를 짝으로 비교해서 구명보트에 같이 탈 수 있는지를 판별했다.그런데 투포인터 방법이면, O(n)으로 끝낼 수 있다.첫번째 풀이에서처럼 조건을 if peopleleft +
징검다리우선, distance는 1 이상 1,000,000,000 이하 라는 조건만 보고도 이분탐색을 적용해야함을 알 수 있다.거리 기준 이분탐색을 할건데, 바위를 n개 제거한 뒤 각 지점 사이의 거리의 최솟값 중에 가장 큰 값은 어떻게 구할 것이냐?이분탐색으로 mid
치킨 배달나의 처음 풀이 : itertools의 combinations를 활용해 살아남을 치킨가게 조합을 구하고, 각 케이스에서 bfs로 각 집당 치킨거리를 구해서 더한다. => 이 값의 최솟값을 최종 결과로 제출.개선 : python의 generator를 사용. 집에