문제 : https://school.programmers.co.kr/learn/courses/30/lessons/43164정렬을 신경쓰다 보면 다음과 같은 케이스를 통과하지 못한다.\[\["ICN", "BBB"], \["ICN", "CCC"], \["CCC",
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/43163한 번에 한 개의 알파벳만 바꿀 수 있기 때문에 문자열이 하나만 다를 때만 변경이 가능하다. ex) hit -> hot (O), hit -
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/87390조건에 n의 범위가 상당히 크기 때문에 2중 반복문을 사용하니 시간초과에 걸렸다. 때문에 반복문 하나로 처리하는 방법을 찾아야한다.규칙을
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/43162전형적인 방향없는 그래프 문제이다.BFS로 간단히 풀면 된다.
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/131128사실 푸는 건 크게 어렵지 않았지만 시간 초과는 도저히 모르겠어서 다른 블로그를 참고했다.최대값 때문에 정렬이 필요하다. 하지만 정렬 라
문제 바로가기for 문을 돌려서 불린 선수를 remove하고 불린 선수 앞 쪽에 insert 하면 되지 않을까?\-> 결과 : 시간 초과순위표를 2개 만든다.스왑한다.player표mumu 0 soe 1 poe 2kai 3mine 4ranking표0 mumu1 soe2
문제 바로가기각 달에 유효기간을 더한 날짜가 오늘 날짜보다 작으면 파기한다.(정답 배열에 삽입)더한 달이 12가 넘어가는 경우를 고려해야 한다.오늘 날짜 비교를 위해 년/월/일을 정수로 슬라이스를 해준다.ex) 2022 1 1유효기간과 약관정보 딕셔너리를 만든다.(유효
문제 바로가기크게 어려운 문제는 아닌 것 같다.동서남북 지시대로 움직인다.격자를 벗어나는 경우와 X인 경우르 고려한다.까다로운 점은 명령이 2인데 1만큼 떨어진 곳에 X거나 벗어나는 것을 생각해야 한다.\-> 위치 최신화를 통해 해결

문제 바로가기그림으로 그려보는 것이 가장 이해가 빠르다.이런식으로 지나간다고 생각해 보자.1초2초3초이런 형태일 것이다.다리 길이만큼의 배열을 생성해주어 다리를 만든다.다리에 있는 트럭과 다음으로 올 트럭의 합이 용량을 초과하면 다리에 있는 트럭은 지나가고 아니면 다음
문제 바로가기이진수를 16진수로 변환한다.16진수로 2차원 배열을 만든다.생성된 2개의 배열을 합친다.16진수로 변환하는 내장함수가 있다. format16진수로 변환될 때 문자열로 변환해 주어야 하는데 예를 들어 2인 경우에는 10 으로 변환되에 앞에 0을 채워줘야 한
문제 바로가기잃어버린 학생과 여분이 있는 학생 중 중복되는 학생들을 제거해 준다. 전체 학생 수에서 잃어버린 학생 수를 빼준다. \-> 수업을 들을 수 있는 학생의 수인 것이다. 예를 들면 전체 학생 수가 5명인데 체육복을 잃어버린 학생 수가 3명이라면 수업을 들을 수
문제 바로가기targets에 있는 문자열을 하나씩 보며 keymap에 포함되어 있는지를 확인해야겠다 생각했다. 예를 들어 A는 ABACD, BCEFD 중에 첫 번째 keymap에 속해있고 1번만 누르면 된다. B는 두 keymap에 모두 속해있지만 두 번재 keymap
문제 바로가기사실 BFS, DFS를 풀어봣다면 너무 기초적인 문제이다. 문제에 의사코드까지 나와있어서 따라하면 된다.
문제 바로가기쉬운 문제이다. 1) 기준이 되는 데이터 2) 기준값 3) 오름차순 만 고려하면 된다.다른 풀이를 보니 dictionary를 활용했는데 훨씬 깔끔해 보인다.
문제 바로가기역시 예시를 직접 손으로 시현해 보면 이해가 빠르다.고려해야 될 것들이 있다.공격을 당한다면1) 체력에서 공격력 만큼 깎아주어야 하고2) 체력이 0이하면 -1을 return해야 한다.공격을 당하지 않다면1) 연속 공격이 증가해야 하고2) 현재 체력이 증가해
문제 바로가기간단한 규칙만 찾으면 된다.1\. 빈도수가 가장 큰 것들의 빈도수를 k보다 커질 때까지 반복하면 된다.
문제 바로기기범위가 상당히 넓기 때문에 일반적인 탐색법은 시간 초과에 걸린다.\-1 배열을 선언해 놓는다.뒤에 있는 수를 찾기 때문에 뒤에서 부터 순회한다.stack에 현재보다 큰 숫자를 저장하여 앞으로 순회하여 비교한다.작거나 같은 숫자는 필요없기 때문에 버려준다.
문제 바로가기일단, 어려운 로직은 없다. 고려해야 할 것들이 많을 뿐.차종을 확인하여 동일 차종이 나갔는지 들어왔는지 확인한다.1) 들어왔을 때 시간과 나갔을 때 시간을 빼준다. 한 번이 아니라 탐색이 모두 끝날 때까지 시간을 축적하여 더해준다.들어왔지만 나가지 않은
문제 바로가기일반적인 탐색은 시간 초과가 난다. 다른 방법이 필요하다.두 개의 포인터를 이용해야 한다.앞쪽 포인터는 그대로 두고 뒤쪽 포인터를 이동하여 누적 합을 계산해 준다.누적합이 k와 같을 때까지 뒤쪽 포인터를 이동한다.만약 누적합이 k와 같다면 가장 작은 인덱스
문제 바로가기소수 판별 함수 필요진수 변환 함수 필요0으로 페이크를 주는 거 같은데 0P0, P0 이런거 사실 신경쓰지 않아도 된다.n진수로 변환된 배열을 순회하며 소수가 몇개인지 찾으면 된다.투 포인터를 이용하여 순회한다.
문제 바로가기주어진 n을 2진수로 변환하여 1의 개수를 센다.n에서 1씩 증가하여 1의 개수가 같은 수를 찾는다.
문제 바로가기합이 더 큰 queue에서 작은 queue로 이동한다.시간초과에 유념하여야 한다.합이 홀수인 경우를 생각해야 한다.
문제 바로가기접두어란? 사전적 의미보단 여기서 어떤 식으로 쓰이는지 이해해 보자.문제를 보고도 이해가 되지 않아서 테스트를 해보았다.12는 123의 접두어이다. 하지만 312의 접두어는 아니다.이제 이해가 된다.그렇다면 in은 사용할 수 없다.사전순으로 정렬하여 바로