https://school.programmers.co.kr/learn/courses/15008/15008-pccp-%EB%AA%A8%EC%9D%98%EA%B3%A0%EC%82%AC-1%ED%9A%8Ccheck_alp = 알파벳을 정렬, 중복 제거한 리스트이다.
https://school.programmers.co.kr/learn/courses/30/lessons/86491명함을 모두 같은 방향으로 정렬해서 각 방향의 최댓값을 구했다
https://school.programmers.co.kr/learn/courses/30/lessons/42840문제의 갯수가 최대 10000개이므로 수포자 1,2,3이 정답으로 제출할 수 있는 최대 리스트를 작성하고 문제의 갯수만큼 슬라이싱하여 비교하였다.
https://school.programmers.co.kr/learn/courses/30/lessons/42839순열을 사용하여 푸는 문제였다.소수 판별=> 해당 소수의 제곱근까지만 해준다.
https://school.programmers.co.kr/learn/courses/30/lessons/42842타일 전체 갯수를 구하고, 나올 수 있는 경우의 수를 구한다.yellow 갯수 조건을 설정하여 답을 구한다.
재귀를 사용하여 푸는 문제같다.조건 그대로 구현해서 풀었다.
https://school.programmers.co.kr/learn/courses/30/lessons/87946보통이라면 순열로 돌리면 시간초과가 날 수도있지만던전의 갯수가 작은 것을 보고 모든 순열을 구해서 반복해주었다.
https://school.programmers.co.kr/learn/courses/30/lessons/118667두 큐의 합을 비교해서 큰 쪽에서 작은쪽으로 숫자를 넘겨주다보면 언젠간 합이 같아질거라고 생각했다.이제 예외조건만 조심하면되는데, 첫번째로 합이
https://school.programmers.co.kr/learn/courses/30/lessons/92341
https://school.programmers.co.kr/learn/courses/30/lessons/92335소수 판별은 해당 수의 제곱근까지만 나누어보면 된다.또한, split를 할때 110011 처럼 0이 두번 나오는 경우 \['11','','11']
https://school.programmers.co.kr/learn/courses/30/lessons/87390시간 초과가 발생했다.1 ≤ n ≤ 10^7 이라 이차원 배열은 절대 사용할 수 없는 것 같다.나름 줄였다고 생각했는데 여전히 시간초과가 발생했다.
https://school.programmers.co.kr/learn/courses/30/lessons/81302BFS를 활용하는 문제인 것 같다.BFS 함수에서 P를 만나면 return 시작점과의 맨허튼 거리를 반환하고, 만약 while 반복문을 자연적으로
https://school.programmers.co.kr/learn/courses/30/lessons/72412정확성테스트는 통과했지만 효율성테스트는 하나도 통과를 하지 못했다.info가 50000이고 query가 100000인데이걸 전부 비교하면 50000
https://school.programmers.co.kr/learn/courses/30/lessons/72411첫번째 풀이는 조합을 구해서 카운트를 세는 방식으로 답을 구했다.반복문을 많이 사용했지만 숫자가 작아서 충분할것이라고 생각했는데, 일부 TC에서 시
https://school.programmers.co.kr/learn/courses/30/lessons/42579딕셔너리를 두개 만들었다.하나의 딕셔너리에서는 총 재생횟수를 구하고 정렬하고다른 딕셔너리에서는 재생횟수와 인덱스 번호를 넣고 마찬가지로 정렬했다.그
https://school.programmers.co.kr/learn/courses/30/lessons/150370레벨 1 문제치고는 상당히 복잡했던 문제였다.
https://school.programmers.co.kr/learn/courses/30/lessons/72411처음에는 주문된 모든 메뉴를 추출해서 조합을 구했다.그런데 이렇게 하면 시간초과가 발생한다예를 들어 'ABC','DEF' 가 있고 2개의 코스요리를
https://school.programmers.co.kr/learn/courses/30/lessons/43165스택에 모든 케이스를 저장해가면서 문제를 풀었다.
기본적인 1차원 DFS 문제였는데 문제에서 주어진 input을 1차원 DFS 문제에서 사용하기 좋게 바꾸는 것이 중요했던 문제인 것 같다.
https://school.programmers.co.kr/learn/courses/30/lessons/1844전형적인 2차원 그래프에서 BFS로 최단거리를 구하는 문제다.상대진영에 도달할 방법이 없는 경우 graph의 값이 디폴트값인 1이므로 -1로 바꿔준다
https://school.programmers.co.kr/learn/courses/30/lessons/43163한개의 알파벳만 바꿔서 words 내부의 단어로 변환 가능한지 여부를 판단해주는 trans 함수를 작성했고해당 조건을 만족하는 것을 기준으로 BFS
https://school.programmers.co.kr/learn/courses/30/lessons/87694주변 8방향에서 하나라도 빈 공간 값이 있다면 테두리로 취급한다.테두리를 먼저 구하고 BFS로 두 점 사이의 길이를 구한다.중요한 점은 길이를 두배
https://school.programmers.co.kr/learn/courses/30/lessons/42884나가는 위치로 routes를 정렬한다.나가는 위치를 카메라 설치 위치로 생각하고 반복을 통해 크기 비교를 한다.조건이 성립되면 +1, 아닐경우 다음
https://school.programmers.co.kr/learn/courses/30/lessons/43105그림을 보면서 dp 배열을 채운뒤 마지막 층의 최대값을 구했다.
https://school.programmers.co.kr/learn/courses/30/lessons/77485파이썬에서 회전은 일차원 리스트에 담아서 돌려준뒤 매칭시켜주면 된다.예를 들어서 3X3 행렬에서 가운데를 제외한 테두리 전체를 돌린다고 생각해보자.
https://school.programmers.co.kr/learn/courses/30/lessons/49191시간초과가 발생했다.검색해보니 플루이드-와샬 알고리즘을 통해 푸는 문제였다.
https://school.programmers.co.kr/learn/courses/30/lessons/42626힙큐를 활용해 조건대로 구현했다.\-1을 return하는 조건만 주의하면 된다.
https://school.programmers.co.kr/learn/courses/30/lessons/150367문제를 쉽게 말하면 포화이진트리형태로 바꿨을때 이게 가능한 형태인지 판별하는 문제이다.문제의 예시로 주어진 42를 판별하자고 하자42는 이진수로
https://school.programmers.co.kr/learn/courses/30/lessons/181186이전에 백준에서 풀었던 문제와 결이 비슷하다고 생각했다. (https://www.acmicpc.net/problem/9095)재귀와 DP
https://school.programmers.co.kr/learn/courses/30/lessons/172927자원을 곡괭이의 갯수만큼 자른다.자원을 5 단위로 나눈다.한 단위의 자원을 돌곡괭이 기준으로 총량을 구한다.단위 자원의 총량을 내림차순으로 정렬한
https://school.programmers.co.kr/learn/courses/30/lessons/159993시작점과 끝점을 주고 경로 찾는 BFS 유형을 살짝 변형한 문제인데시작점 -> 레버레버 -> 끝점이런 식으로 BFS를 두번해서 해결했다.
https://school.programmers.co.kr/learn/courses/30/lessons/160585디폴트를 1로 두고 규칙을 지켜서 진행했을때 나오는 게임 상황이 아니라면 0을 입력했다.여기서 말하는 규칙을 지키지 않은 상황을 구하기 위해 2가
https://school.programmers.co.kr/learn/courses/30/lessons/155651회의실 그리디 문제랑 비슷한 유형의 문제였다.문자열로 된 시간을 분으로 변환해주고, 끝나는 시간에는 +10분을 했다.그렇게 만들어진 새로운 리스트
시간 초과가 발생했다.약수를 구하는 함수를 제곱근을 활용하여 효율성을 높였다.속도가 훨씬 빨라졌지만 여전히 시간 초과가 발생했다.시간복잡도를 고려하여 약수 구하는 방식을 바꿨다.약수의 갯수 구하는 공식은 알아두면 좋을것 같다.
https://school.programmers.co.kr/learn/courses/30/lessons/148653문제의 요지는 숫자가 주어지면 가장 적게 이동하며 10, 100, 1000 등 10의 제곱수의 배수로 만드는 것이다. (3000, 5000 등등)
https://school.programmers.co.kr/learn/courses/30/lessons/138476Counter 클래스로 귤의 갯수를 구한다.귤의 갯수를 정렬하고 가장 큰 값부터 더해가면서 K 보다 크거나 같아질때 더해진 귤 종류의 갯수를 구한
https://school.programmers.co.kr/learn/courses/30/lessons/154540붙어있는 칸을 계산하는 자주 출제되는 DFS 유형의 문제였다.
https://school.programmers.co.kr/learn/courses/30/lessons/92344단순하게 반복할 경우 반복문이 3개가 겹쳐서 시간 초과가 발생한다.그렇기때문에 스킬을 우선적으로 계산하고 그 결과를 board에 넣는 방식으로 접근
https://school.programmers.co.kr/learn/courses/30/lessons/133500트리+DP 유형의 문제였다.https://www.acmicpc.net/problem/2533이 문제와 완전히 똑같은 문제였다.
https://school.programmers.co.kr/learn/courses/30/lessons/84512모음과 더불어 공백문자를 리스트에 넣어주고 product를 해준다.그러면 A는 A와 공백 4칸을 선택하는 것으로 표현할 수 있다.그렇게 만든 리스트
https://school.programmers.co.kr/learn/courses/30/lessons/131127defaultdict 를 활용하여 날짜별로 구매해야할 딕셔너리를 만들고 기존 딕셔너리와 일치하는지 확인하여 일치하면 +1을 해준다.
https://school.programmers.co.kr/learn/courses/30/lessons/131704약간 하노이의 탑이 생각나는 문제였다.주어진 조건을 그대로 구현해서 코드를 작성했는데, 인덱스에 접근하는만큼 인덱스 오류가 발생하지 않게 조건문을
오픈 api를 사용하는데 api에서 받아온 데이터를 저장하는 방법이다.게임에서 제공하는 api를 받아와서 캐릭터 데이터를 저장한다고 치자모델이나 시리얼라이저는 기존과 비슷하고 views.py 에서 api로 호출을 하고 데이터를 저장하는 코드를 작성했다.python에서
https://school.programmers.co.kr/learn/courses/19344/lessons/242258?language=python3공격 시간이 겹치지 않으므로 반복문이 겹치는걸 피하기 위해 딕셔너리에 담았다.0부터 마지막 공격시간까지 1초마
https://school.programmers.co.kr/learn/courses/19344/lessons/242259DFS나 BFS를 활용하는 문제였다.단순하게 세로축마다 DFS를 반복했고 정답은 나왔지만 당연하게 효율성 검사에서 모두 실패했다.DFS를 전
12시와 시침, 분침, 초침 사이의 각도로 문제를 접근했다.각도는 다음과 같이 접근할 수 있다.
https://school.programmers.co.kr/learn/courses/30/lessons/131703전과 후를 비교하는데, 각 행이나 열의 첫번째 원소로 판단하고 행, 열 전체를 뒤집는다.첫번째 원소가 같은 행 뒤집고 첫번째 원소가 다른 열 뒤집
https://school.programmers.co.kr/learn/courses/30/lessons/340212처음에는 1부터 계산한뒤 조건에 만족못할경우 1씩 키워가면서 했는데 역시나 시간 초과가 난다.이진탐색으로 탐색 속도를 줄여 통과했다.