단순히 한 방향으로 인접해있는 정점들에 대해 방문 여부만 확인하면 되는 게 아니라, 모든 점과 연결되는지를 확인해야 했다. 처음에는 모든 간선들의 방향을 뒤집으면 될까 싶었는데 진입 및 진출 차수를 모두 확인해야 할 것 같아서 아예 두 개의 인접 리스트를 만들
처음에는 비트 연산을 이용해서 부분집합을 만들고 연속 여부를 flag 변수로 확인하려고 했는데
무향 그래프임을 확인했고 인접 리스트를 이용하는 게 공간 복잡도가 더 낮을 것이라고 생각했다.
우선 i, j, k를 받은 다음 슬라이싱해서 정렬한 뒤, k 위치의 값을 answer 리스트에 추가했다. 다른 사람의 풀이 방법을 보니 슬라이싱과 인덱싱 부분을
전에 풀어봤던 문제이기 때문에 전보다 깔끔하게 코드를 짜고 실행시간을 줄이는 게 목표였다. D
우선은 문제를 이해하는 것부터 좀 어려워서 계속 들여다봤다. 개구리 한 마리가 연속해서 울 수
가능한 모든 경우를 확인해야 하므로 격자판 위의 모든 지점에서 dfs 함수를 호출한다. 중복
두 콩 사이의 거리가 2가 되면 안 되므로 상하좌우 네 방향으로 2칸 띄운 위치에 콩이 있는지
부서진 타일을 2*2 타일로 대체할 것이므로, 각 행/열에 대해 연속한 '계획한 대로 풀었음
처음에는 for문을 돌며 각 요소를 확인하여 citationsi번 이상 인용된 게 citationsi개 이상, 나머지는 citationsi개 이하인지 확인하고자
처음에 계획했던 풀이 방법A, B 각각 일의 자리부터 십의 자리, 백의 자리 ... 순서로 4
숫자에 대해 앞에 있는 두 개를 합치든, 가운데에 있는 두 개를 합치든 결국 결과는 같다는 걸 발견했고, 따라서 숫자를 문자로 받은 뒤 앞에 있는 두 글자를 int로 변환하여 합치는 과정을 카운트 한 뒤 홀짝 여부에 따라 알맞는 승자를 리턴해주도록 했다.
모든 사탕 봉지 속 사탕 개수를 XOR 연산했을 때 결과가 0이면, 그 중 어떤 값을 선택하든
1. 주어진 숫자들에 대해 모든 순열을 구한다.2. 각 순열에 대해서 숫자를 하나씩 왼쪽, 오른쪽에 올리면서 dfs이 방법을 생각해내고 아래 시간 줄인 방법 1, 2 까지는 했는데 더 시간을 줄이는 방법이 생각나지 않았다. 그래서 다른 분들 코드를
가장 긴 팰린드롬 부분문자열을 구해야 하므로 부분문자열의 길이를 점점 줄여가며 검사하고자 했다. 그리고 길이가 줄어들면 원래의 문자열에 대해 한 자리씩 옮겨가며 부분문자열을 검사해야 하는데 (ex. 'abcdc'에서 길이가 4일 때는 'abcd'와 'bcdc'
주어진 문자에 따라 각 명령을 수행하는 함수 작성 `@`가 있을 때만 프로그램을 멈출 수 있으므로 격자판에 `@`가 있을 때만 함수 실행하도록 조건 추가 메모리에 저장된 값을 계산하는 문자(`+`, `-`)의 경우 값 계산 후 16으로
https://programmers.co.kr/learn/courses/30/lessons/60057몇 개 단위로 끊을지 결정. 1이 최솟값. 문자열을 반으로 나눠 앞쪽과 뒤쪽 문자열이 같은 경우가 최대로 압축한 경우이므로, len(s) // 2가 최댓값이 된
https://programmers.co.kr/learn/courses/30/lessons/42888가장 최근 닉네임이 필요하므로 일단 for문을 돌면서 해당 id에 대한 최신 닉네임을 딕셔너리로 저장한다.다시 for문을 돌면서 Enter와 Leave에 대해
https://programmers.co.kr/learn/courses/30/lessons/12899일의 자리 값이 숫자 3개마다 1, 2, 4 순서로 규칙을 갖는 것을 보고 3으로 나눈 나머지에 따라 (나머지가 0일 때는 4로 생각) 값을 추가하면 되겠다고
https://programmers.co.kr/learn/courses/30/lessons/42586문제 분류가 스택/큐로 되어 있길래 while문으로 day를 +1씩 하면서 첫 값이 100 이상이 되면 100을 넘은 값들을 pop을 하는 식으로 풀려고 했었다
https://programmers.co.kr/learn/courses/30/lessons/72411우선은 course 리스트에 있는 값(=코스요리 내 단품메뉴의 갯수)마다 구분해서 가장 많이 주문된 조합을 구해야 한다.조합마다 주문 횟수를 세야 하므로 조합을
https://programmers.co.kr/learn/courses/30/lessons/17677처음에는 set을 사용해서 합집합과 교집합을 계산하려고 했으나 다중집합에 대한 조건이 있어서 어떤 자료형을 사용할지 고민했다. 그러다가 중복된 원소의 개수를 세
https://programmers.co.kr/learn/courses/30/lessons/81302우선 5개의 대기실 정보가 주어지므로 각 대기실 정보에 대해 distance_check() 함수를 실행한다. 대기실에 사람(=P)이 한 명도 없는 경우를 처리하
https://programmers.co.kr/learn/courses/30/lessons/42839우선은 주어진 numbers에 대해 조합을 구해야 하는데, itertools를 사용하거나 직접 구하거나 하는 2가지 방법이 있다. 이전에는 직접 구현할 줄 알아
https://programmers.co.kr/learn/courses/30/lessons/42583푸는 것보다 문제를 이해하는 데에 더 오래 걸렸던 문제다.우선 대기 중인 트럭, 다리를 건너는 트럭은 queue 형태로 먼저 들어온 순서대로 나갈 수 있다. 그