https://www.acmicpc.net/problem/2750sorted(lst)를 해서 오름차순으로 정렬하는게 포인트다.
https://www.acmicpc.net/problem/3052
https://www.acmicpc.net/problem/9085
https://www.acmicpc.net/problem/17350
https://www.acmicpc.net/problem/2789
https://www.acmicpc.net/problem/11365문자열을 뒤집는 방법 -> password::-1
https://www.acmicpc.net/problem/10886
https://www.acmicpc.net/problem/3009직사각형의 특성을 이용해서 x좌표로 이루어진 네 개의 수와 y좌표로 이루어진 네 개의 수에서 각각 두 개씩 같은 수를 구할 수 있다.x좌표 리스트, y좌표 리스트 요소 중 하나만 존재하는 것을 추
https://www.acmicpc.net/problem/13163
https://www.acmicpc.net/problem/2869시간초과가 안나게 반복문을 사용하지 않는게 포인트day에 대한 식을 정리하여 if문으로 판별
https://www.acmicpc.net/problem/2075heap에 N개의 요소를 넣어두고 heap0으로 N번째 큰 수를 구한다.heap0 이외의 요소는 정렬되지 않은 heap0보다 큰 수들이다.
https://www.acmicpc.net/problem/2998문제가 요구하는 것처럼 자리수를 3의 배수로 맞추고 3자리씩 나누어 8진수 값을 구한다.2진수로 입력을 받기2진수를 10진수(정수)로 바꾼 다음에 8진수로 고쳐서 출력
https://www.acmicpc.net/problem/10826현재값과 이전값을 더해 다음 값을 구한다.
https://www.acmicpc.net/problem/2178마지막에는 경로에는 지나온 횟수가 저장된다.0 = 벽, 1 = 지나가지않은 길, 1이상 = 한번이상 방문한 길참고https://jokerldg.github.io/algorithm/2021
https://www.acmicpc.net/problem/2752
https://www.acmicpc.net/problem/2606
https://www.acmicpc.net/problem/11724위 그림은 하나의 그래프에 두 개의 연결 요소를 가진다.bfs가 끝나면 시작지점의 연결요소 방문이 끝 -> 연결요소 +1참고https://velog.io/@polynomeer/%EC%9
https://www.acmicpc.net/problem/1977브루트포스로 M이상 N이하의 완전제곱수를 구한다.
https://www.acmicpc.net/problem/4673int로 들어온 n을 str으로 형변환을 시켜주면 문자열 즉, iterable이 되고 그걸 map 함수를 이용해 다시 int로 바꾸면 sum()함수를 이용해 각 자리 수의 합을 구할 수 있다.셀프
https://www.acmicpc.net/problem/1978input().split() 대신 map을 이용해 입력받는 값을 int형으로 변경나눴을 때 나머지가 0이고 나눈 숫자가 자기 자신이면 소수
https://www.acmicpc.net/problem/5355import sysinput = sys.stdin.readline 을 이용해 한 줄을 리스트로 받아온다."{:.2f}".format(result) 말고도 print(round(result, 3))
https://www.acmicpc.net/problem/11653
https://www.acmicpc.net/problem/2675
https://www.acmicpc.net/problem/1316현재 문자가 다음 문자~마지막 문자 안에 존재하면 그룹 단어가 아니다.
https://www.acmicpc.net/problem/5585문제에서 말하는 잔돈과 거스름돈의 차이를 알자
https://www.acmicpc.net/problem/228641시간씩 차근차근 조건에 맞게 구현하면 된다.
https://www.acmicpc.net/problem/11047for문으로 받아온 값들을 리스트에 저장하는 방법을 알아두자
https://www.acmicpc.net/problem/1026A에서 가장 작은 값, B에서 가장 큰 값을 추출하면 된다.
https://www.acmicpc.net/problem/11399
https://www.acmicpc.net/problem/1969문제 이해하다가 시간이 오래 걸려서 검색을 통해 이해했다. 참고https://yuna0125.tistory.com/112
https://www.acmicpc.net/problem/1012큐에 좌표를 넣어 while문을 통해 인접한 배추를 찾는다.재귀를 이용해 인접한 배추를 구한다.graph의 index를 사용할 때 행과 열을 바꾼 코드디버깅을 하면서 코드가 돌아가는 메커니즘은 깨
https://www.acmicpc.net/problem/10829
https://www.acmicpc.net/problem/2609유클리드 호제법에 의해서 최대공약수와 최소공배수를 구할 수 있다.a와 b의 최대공약수 G는 b와 a%b(a를 b로 나눈 나머지)의 최대공약수 G'와 서로 같다!예시) gcd(24, 18) = gc
https://www.acmicpc.net/problem/10101
https://www.acmicpc.net/problem/2164deque 사용법을 숙지하자
https://www.acmicpc.net/problem/8911min, max로 최대, 최소값을 저장해 넓이를 구한다.
https://www.acmicpc.net/problem/1076
https://www.acmicpc.net/problem/28395로 나누어 떨어지지 않을 때 3을 빼고 count+=1 하는게 핵심
https://www.acmicpc.net/problem/1427sort는 원본을 정렬sorted는 원본은 그대로 두고 정렬된 값만 출력
https://www.acmicpc.net/problem/15904
https://www.acmicpc.net/problem/1057
https://www.acmicpc.net/problem/1120
https://www.acmicpc.net/problem/1439입력받은 string을 for문을 돌려서 0 -> 1 or 1 -> 0 이렇게 바뀔 때만 count += 1 을 해준다. count는 변화했던 횟수를 담고 있고 매번 변화할 때마다 다솜이는 바꿀
https://www.acmicpc.net/problem/4101
https://www.acmicpc.net/problem/4766
https://www.acmicpc.net/problem/1065
https://www.acmicpc.net/problem/1158join을 써서 ' '안의 형식으로 리스트 안의 항목을 합치려면 str로 변환해야한다. sep=""을 하지 않으면 "< 3, 6 ... 4 >" 이런식으로 <와 3 사이에 공백이 생긴다
https://www.acmicpc.net/problem/1543document.find(word)를 했을 때 word의 첫 인덱스를 반환한다.그러므로 첫 인덱스 + word의 길이만큼 제거하면 된다.document.find(word) = 00 + 3을 하면
https://www.acmicpc.net/problem/1292다른사람 풀이a, b의 범위는 1000까지였기 때문에 반복문의 범위는 46까지만 구해도 된다. (len(arr) = 1036)i값을 기준으로 이중 반복문을 사용하는데 빈 arr에 i를 추가한다.
https://www.acmicpc.net/problem/1264
https://www.acmicpc.net/problem/1251
https://www.acmicpc.net/problem/1032처음에 result=’’로 하고 값을 하나씩 추가하려다가 실패했다.result를 문자열로 받고 값 비교 후 인덱스에 따라 값 변환하려다가 에러나서 방황했다.문자열은 인덱스에 따라 값 변환이 안된다
https://www.acmicpc.net/problem/1181set(array)은 시간복잡도가 O(N)이다. 시간복잡도를 크게 해치지 않는 경우에만 사용하기 key= 뒤에 들어가는 것은 ‘함수’이다. 그래서 주로 key=lambda x:\~~로 임시 함수를
https://www.acmicpc.net/problem/1302
https://www.acmicpc.net/problem/1259while True: input_num = input()
https://www.acmicpc.net/problem/1152
https://www.acmicpc.net/problem/1417예제 1, 2에서 예외처리가 힘들었다. 문제를 꼼꼼히 보고 구현하자
https://www.acmicpc.net/problem/2979
https://www.acmicpc.net/problem/10709
https://www.acmicpc.net/problem/1966
https://www.acmicpc.net/problem/14248
https://www.acmicpc.net/problem/4963이 문제는 상하좌우뿐만 아니라 대각선까지 체크하므로 주의하자
https://www.acmicpc.net/problem/1388
https://www.acmicpc.net/problem/2667
https://www.acmicpc.net/problem/16173
https://www.acmicpc.net/problem/1926
https://www.acmicpc.net/problem/5648
https://www.acmicpc.net/problem/20291
https://www.acmicpc.net/problem/11652
https://www.acmicpc.net/problem/20920sorted 사용 시 다중 조건으로 정렬 가능하니 알아두자
https://www.acmicpc.net/problem/1758
https://www.acmicpc.net/problem/2230투 포인터를 처음 접한 문제다. 정렬 후 start, end로 조건에 맞은 값을 찾는다.
https://www.acmicpc.net/problem/2512
https://www.acmicpc.net/problem/1072
https://www.acmicpc.net/problem/1654
https://www.acmicpc.net/problem/1920
https://www.acmicpc.net/problem/2805
https://www.acmicpc.net/problem/2110입력받는 값의 범위가 커서 그런지 import sys를 하지 않으면 시간초과가 난다.
https://www.acmicpc.net/problem/13301
https://www.acmicpc.net/problem/14494오른쪽, 아래, 오른쪽 아래 방향의 합이 원하는 좌표
https://www.acmicpc.net/problem/2579참고https://daimhada.tistory.com/181
https://www.acmicpc.net/problem/9084참고https://d-cron.tistory.com/23
https://www.acmicpc.net/problem/1965만약 내앞의 상자가 나보다 작고 그 상자가 담고 있는 상자의 갯수(본인포함)가 2개라면지금 나의 상자는 앞의 상자까지 담을 수 있으므로 3이 된다.
https://www.acmicpc.net/problem/11048dp 값 설정할 때 선언 방식을 주의하자.
https://www.acmicpc.net/problem/1890
https://www.acmicpc.net/problem/101641~k 지점 까지의 dp + k~(n,m) 지점 까지의 dp를 곱하면 된다.
https://www.acmicpc.net/problem/2293
https://www.acmicpc.net/problem/12865
https://www.acmicpc.net/problem/2133
https://www.acmicpc.net/problem/18352bfs vs 다익스트라를 비교해보니 bfs가 더 빨랐다.
https://www.acmicpc.net/problem/1446
https://www.acmicpc.net/problem/1916
https://www.acmicpc.net/problem/11403
https://www.acmicpc.net/problem/1058
https://www.acmicpc.net/problem/11404
https://www.acmicpc.net/problem/5086
https://www.acmicpc.net/problem/1463dpi = dpi - 1 + 1 로 1을 빼는 연산을 먼저 한다.2로 나누어 떨어지면 1을 빼는 연산과 2로 나누어 떨어질 때(dpi // 2 + 1)를 비교해 최소값을 구한다.3으로 나누어 떨어
https://www.acmicpc.net/problem/90954를 구하는 방법 = 1의 경우의 수 + 2의 경우의 수 + 3의 경우의 수n을 구하는 방법 = n - 1의 경우의 수 + n - 2의 경우의 수 + n - 3의 경우의 수다른 사람 풀이 DFSn
https://www.acmicpc.net/problem/1149
https://www.acmicpc.net/problem/1932처음에 낮은 행에서 마지막 행까지 더하려 했다. 그러면 마지막 행의 마지막 요소를 계산하는 방법을 따로 구현해야해서 풀이가 잘못 되었다는걸 깨달았다.i = 1부터 시작해서 j의 인덱스에 따라 구현
https://www.acmicpc.net/problem/10798charAt은 지정된 문자 위치의 문자를 리턴한다.char의 초기 값은 \\0이어서 입력값 인덱스 이외의 값들은 \\0으로 채워진다.
https://www.acmicpc.net/problem/1697dist 배열을 이용해 인덱스에 대한 값이 걸리는 시간을 기록한다.for nx in (now - 1, now + 1, now \* 2)은 nx = 4, 6, 10인 3가지 경우로 각각 for문 돌
https://www.acmicpc.net/problem/9506약수 저장하다가 자기 자신까지 리스트에 저장돼서 출력할 때 애먹었다.
https://www.acmicpc.net/problem/2468처음에 지역 좌표가 str이라 int로 형변환해야한다.for height in range(max_height): 에서 범위를 최소 높이, 최대 높이로 설정하니 90%에서 틀렸다고 한다. 이유를 모
https://www.acmicpc.net/problem/3460String str = Integer.toBinaryString(n); 이진수로 변환하는 대신 String 값으로 나온다.
https://www.acmicpc.net/problem/1929for문의 시작을 i + i로 해서 자기 자신 이외의 배수를 판별했다.
https://www.acmicpc.net/problem/10974처음에는 이해가 안갔는데 그림을 보고 디버깅하면 이해하기 수월하다. 참고https://humansight.tistory.com/99
https://www.acmicpc.net/problem/1759정렬 후 조합을 만들면 알파벳 순으로 만들어진다.자음의 개수 = 전체 길이 - 모음의 개수
https://www.acmicpc.net/problem/13458int의 범위는 21억까지이다.한 줄에 있는 값을 받아올 때 StringTokenizer를 초기화시키고 st.nextToken()으로 값을 받아와야한다.
https://www.acmicpc.net/problem/2961조합을 이용해 3중 for문으로 해결했다. 복잡하다.
https://www.acmicpc.net/problem/4949스택에 저장 후 괄호의 짝이 맞으면 yes, 아니면 no
https://www.acmicpc.net/problem/25325
https://www.acmicpc.net/problem/1021deque.offerLast(); //Deque의 뒤쪽에 데이터를 삽입 후 true, 용량 초과시 falsedeque.pollFirst(); // Deque의 앞에서 제거, 비어있으면 null 리
https://www.acmicpc.net/problem/1874참고https://infodon.tistory.com/95
https://www.acmicpc.net/problem/13305가장 값이 싼 주유소를 갱신하면서 오른쪽으로 간다.
https://www.acmicpc.net/problem/1461책을 모두 제자리에 갖다놓으면 제자리로 돌아올 필요가 없다 -> 가장 먼 책을 마지막에 갖다 놓는다.답 : 최소걸음수 \* 2 + 가장 먼 책 거리
https://www.acmicpc.net/problem/2644
https://www.acmicpc.net/problem/10816
https://www.acmicpc.net/problem/16401과자 리스트에서 길이가 mid인 것을 만들 수 있는 개수를 구하고 m과 비교한다.
https://www.acmicpc.net/problem/18870set으로 중복 제거 후 numbers 순서대로 압축한 좌표를 출력한다.
https://www.acmicpc.net/problem/13565
https://www.acmicpc.net/problem/7576처음에 모든 좌표를 돌면서 graphi가 1인 지점에서 bfs를 돌렸다가 예제 입력 3에서 오류가 발생했다. 모든 좌표를 돌면서 graphi가 1인 지점을 큐에 넣는 방법으로 해결했다.
https://www.acmicpc.net/problem/14501i일째에 시작한 상담이 끝나는 날(i+t-1)을 기준으로 i-1일째까지의 최대 상담 비용(dpi-1)에 이번 상담 비용(p)를 더한 값들 중 가장 큰 값으로 DP테이블(dp)을 계속 갱신한다.
https://www.acmicpc.net/problem/2980처음에 지나는 시간, 트럭의 위치, 빨간불, 초록불 다 하나씩 계산하면서 코드를 구현하다가 코드가 너무 길어지고 풀이가 꼬여버려서 1시간 동안 고생했다. 풀이 방법을 더 깊이 생각해봐야겠다.
https://www.acmicpc.net/problem/2217 예를 들어 3개의 로프가 있다고 하자.rope_list = 4, 11, 33로프가 1개일 때 33 1 = 33로프가 2개일 때 17 2 = 34로프가 3개일 때 4 \* 3 = 12최대 중
https://www.acmicpc.net/problem/16435
실패한 코드시간 복잡도가 n^2인데 n의 범위가 200,000이라서 시간초과가 발생했다.정답 코드수학적으로 생각하면 간단하게 풀 수 있는 문제이다.모든 집까지의 거리의 총합이 가장 작으려면 일직선 상에서 가운데에 가까울 수록 총합이 적어진다.그래서 배열에 집의 위치를
https://www.acmicpc.net/problem/10431
https://www.acmicpc.net/problem/15649백트래킹을 이용해 방문하지 않은 숫자로 순열을 만든다.
https://www.acmicpc.net/problem/15650N과 M (1)와 다른 점은 (1, 1), (2, 2) 같은 중복 숫자가 없어야하고 오름차순으로 정렬되어야 한다는 조건이다.
https://www.acmicpc.net/problem/15651같은 수를 여러 번 골라도 되기 때문에 방문 처리 하기 전 if문을 제거했다.
https://www.acmicpc.net/problem/11866처음엔 사람을 제거하고 리스트를 짤라붙여 K번째 사람을 구하려했으나 리스트의 인덱스만으로 해결할 수 있는걸 알았다.