한줄을 받고 한글자씩 잘라서 if 문으로 확인하는 코드=> 중복 구문이 많고, 코드가 더럽다.in 구문을 이용해 한꺼번에 ( , \[ 를 확인한다.if not stack으로 stack이 비어있으면 우선 걸러주고index(stack.pop) 함수를 이용해 기존 if문 두
딕셔너리를 이용해 {인덱스: 중요도} 로 풀려고 시도했다. => 중요도가 중복되는 것들이 많아서 key value 로 풀기 어려움.queue 를 이용하기로
set 클래스를 야심차게 만들어서 문제를 풀었는데 메모리초과ㅜSet 클래스를 제거하고 메인 코드에서 직접 실행 => 모든 작업에 대해 Set 클래스의 인스턴스를 생성할 필요가 없음으로 메모리 절약remove() 메소드 대신 discard() 메소드를 사용remove()
결과값을 list(str(ans)) 로 쪼개고 이를 리버스 시킨다음 카운트.기존 리스트를 만들고 리버스시켰다면 for 문에서 reversed(str(ans)) 를 사용해 바로 뒤집는다다른 사람의 정답을 보고 좀 당황했다..;결과값 마지막에 0 을 만드는 것은 5.N ≤
딕셔너리를 이용한 쉬운문제
만약)1 2 3 3 4 의 시간이 걸린다면11+21+2+31+2+3+31+2+3+3+4이기 때문에 규칙을 발견할 수 있다sort는 함수가 O(nlogn)enumerate 와 for 에서 O(n) 을 가지기 때문.생각해보니 enumerate 안쓰고 그냥 더해도 됐었다..
딕셔너리를 이용해 다 저장하고 for 문을 돌면서 key, value 에 해당하는 값을 찾으려고 했다.=> 시간초과ㅜN개의 포켓몬을 사전에 저장하는 데 O(N)M개의 질문 처리에 O(M \* N) 모든 질문을 for문으로 검색해야할수도 있어서... 그래서 딕셔너리를 두
set을 사용해 풀었다.
https://www.acmicpc.net/problem/11047역순 정렬해도 되지만, 그냥 네거티브 인덱싱을 사용했다
https://www.acmicpc.net/problem/1003시간초과로 실패..문제에서 주는 곧이곧대로 재귀함수로 풀어서 그런가보다
3번 연속으로 못올라간다에 초점을 두고 cnt 를 명시적으로 사용하려고함.dp 로 푸는 문제임을 눈치챘지만, 정확하게 사용하지 못함.작은 문제에서 부터 큰문제로.왜 dpi - 3 + stairsi - 1 일까? dpi - 3 + dpi - 1 이 아니라 에 대해서 생
https://www.acmicpc.net/problem/2606정답은 맞았지만 connections 에 담지 않고 바로 graph 를 만드는 생각을 못했다..입력을 받으면서 바로 graph를 만든다.V는 정점(컴퓨터)의 수이고 E는 간선(연결) 수이는 DFS
https://www.acmicpc.net/problem/90951,2,3은 자기 자신도 합으로 갖는다!O(max)같은 효율성의 풀이지만 너무 깔끔하다..
https://www.acmicpc.net/problem/9375=> 전체 모든 피스를 입는게 아니기 때문에 오답!
https://www.acmicpc.net/problem/11659배열을 크기를 (n+1) 로 바꿨다.
https://www.acmicpc.net/problem/117262xi 직사각형의 마지막 부분을 보고 이 부분이 채워질 경우의 수를 확인한다. 하나의 2x1 타일(마저 채워야할 타일은 2x(i-1) 직사각형이다) 두 개의 1x2 타일(마저 채워야할 타일은 2
https://www.acmicpc.net/problem/11727https://velog.io/@mpfo0106/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B0%B1%EC%A4%80-BOJ-11726%EB%B2%88-2xn-%ED%83
https://www.acmicpc.net/problem/17626이는 'i'보다 작거나 같은 제곱수만 고려하도록 하기 위한 것.square = 1(1^2)의 경우 dp26 = min(dp26, 1 + dp26 - 1)을 수행합니다.square = 4(2^2)
https://www.acmicpc.net/problem/1012런타임 에러
https://www.acmicpc.net/problem/1927남들 풀이를 보면 sys.stdin.write 로 해결하더라
이진탐색
https://www.acmicpc.net/problem/2630탑다운 방식으로 재귀를 사용해야한다는걸 파악.나처럼 x1,x2,y1,y2 할 필요없이 총길이로 계산한다.맨 첫번째 값을 받아오고 그것과 다르면 false 로.
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15Khn6AN0CFAYD&categoryId=AV15Khn6AN0CFAYD&categoryType=CODE&probl
https://school.programmers.co.kr/learn/courses/30/lessons/42746?language=java간단하게 문자열로 역정렬하면 되는줄 알았으나 3, 30 같은 경우를 처리하지 못함.문제 해결
https://school.programmers.co.kr/learn/courses/30/lessons/42747?language=java인덱스 실수를 계속하는데 인덱스를 잘 생각하자!
일정한 크기의 조건들이 주어지고, 그 안에서 완전탐색을 통해 최적비용 또는 최적경로를 탐색해야 하는 경우각 조건에서 선택할 수 있는 경우의 수가 정해져 있을 경우(이차원 배열 등)
https://www.acmicpc.net/problem/3273
레코드들을 키 값의 순서로 재배열하는것.가장 작은 원소부터 선택해 알맞은 위치로 옮기는 작업을 반복반복적으로 최소값을 찾아 정렬하는 방식알고리즘 매우 간단. 효율 x 이며 안정성 x정렬 안된 부분의 데이터를 정렬된 부분의 특정 위치에 삽입하는 방식알고리즘이 동작하는 동
탐색범위가 큰상황에서 자주 쓰임탐색범위가 2000만을 넘어가면 의심해봐.O(logN)이 필요하거든.
https://school.programmers.co.kr/learn/courses/30/lessons/43165평소에 DFS/BFS 문제를 그래프, 길찾기 종류의 유형으로만 접하다 보니DFS 유형이라고 써있는 힌트가 오히려 더 혼란을 가져왔던거 같다.찾아보니