문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43165문제 접근재귀함수를 이용한 DFS 알고리즘으로 접근을 했다.DFS를 이용해야겠다는 생각은 했지만 stack을 이용한 DFS로 처음에 접근했다.약간의
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/1829문제 접근재귀 DFS로 문제를 접근함1\. 상하좌우에서 현재 체크 중인 값은 재귀 DFS 호출2\. 상하좌우에서 현재 체크 중인 값과 같지 않으면 해
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42586문제 접근1\. 각 작업 진행 속도와 진행된 퍼센티지를 기반으로 배포까지 걸리는 일 수 계산2\. 배포 시작 기준이 되는 작업을 기준으로 전체 작업
문제링크: https://programmers.co.kr/learn/courses/30/lessons/12973문제 접근스택을 이용하여 괄호 맞추기랑 비스무리하게 풀면 된다.1\. 스택이 비었거나 스택 제일 위쪽에 있는 글자랑 현재 글자랑 다르면 스택에 넣음2
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42746문제 접근혼자서 하려다가 도저히 모르겠어서 질문하기를 통해 답을 참고했다.핵심은 두 문자열을 합쳐서 가장 큰 수를 찾는 것이다.예를 들면, 다음과
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42576문제 접근일반적인 접근완주자 명단으로 해쉬맵 만듬참가자 명단 돌면서 없는 사람 찾음위와 같이 접근하면 큰일 난거다.(맞다 나다!)주의 사항 중 "동
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42587문제 접근인덱스와 우선순위를 저장할 수 있는 클래스 생성큐에 인덱스와 우선순위 저장제일 앞 원소를 꺼내고, 나머지 원소들 중 꺼낸 원소보다 높은 우
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42626배열을 우선순위 큐로 바꿈우선순위 큐에서 2개를 꺼내서 섞고 다시 넣음우선순위 큐에 존재하는 음식이 다 K를 넘는지 확인넘으면 횟수 리턴아니면 1번
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/12899이 문제는 테스트 케이스를 찾으러 질문하기를 들어갔다가 스포를 당해버렸다...처음에 테스트 케이스를 일부만 보고 3으로 나눈 나머지 값에 따라 St
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/77485우선, 이 문제는 걍 구현 문제다.회전해야하는 범위가 \[2, 2, 5, 5]라고 가정하면, 아래의 그림처럼 구역을 나누고 회전을 진행한다.순서대로
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43162딱 보자마자 "이건 DFS로 접근하는 문제다"라고 생각이 들꺼다.그 다음은 분리되어 있는 그룹의 갯수를 카운팅하는 법을 생각했다.\-> 0번부터 돌
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/43238이분 탐색을 알고리즘은 알았지만 이 문제에 어떻게 적용시켜야할 지를 몰랐다.다른 분들의 답을 참고하여 어떤 식으로 접근해야하는지를 학습했다.보통 이
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/49189해당 문제는 BFS를 이용하여 1번 노드부터 각 노드까지의 거리를 갱신하는 문제이다.BFS를 수행하며 노드의 거리를 갱신해주는데, 이미 거리가 갱신
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/72410이 문제는 문자열 조작 문제로 정규식을 쓸 수 있냐 없냐고 갈리는 것 같다.정규식만 쓸 줄 안다면 단계별로 진행했을 때 문제 없을 것이다.
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42627우선 배열을 Job클래스의 리스트로 변경하여 진행했다.우선순위 큐는 처리 시간으로 정렬하게 했다.여기서 핵심은 다음과 같다고 생각한다.현재 처리 중
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42862그리디는 너무 오랜만에 풀어봐서 처음에 쉽다고 생각했는데 오래 걸렸다.이번에도 제약 사항 중 놓친 케이스가 있었다...어쨋든 핵심은 다음과 같다.여
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/77484핵심은 맞은 개수와 0의 개수를 카운팅하는 것이다.맞은 개수만으로 최저 등수가 나오고, 맞은 개수 + 0의 개수로 최고 등수를 판별하는
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42839핵심순열로 모든 숫자 조합을 찾는 것숫자 중복 체크소수 판별dfs 알고리즘을 이용해 모든 숫자의 조합을 찾아가면서 중복되지 않는 숫자에
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/72411해당 문제는 문자열의 조합을 찾아내어 조합별로 나온 개수를 세어 저장하고, 가장 많이 주문된 조합을 찾아 배열로 리턴하면 되는 문제다.
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17677핵심교집합 검사하는 로직을 세울 수 있는가2글자씩 자른 문자열에서 특문자 검출
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/67257핵심정규식을 이용한 숫자, 연산자 검출연산자 우선순위 순열로 모든 우선순위 경우의 수 계산중위 연산
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42577맨처음에는 조합으로 뽑아서 길이가 짧은게 긴 거의 시작인가를 검사했다 (효율성 검사 시간 초과)문자열 길이로 정렬 후, 2중 for문으
문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/60058문제 설명은 하나 빼고 다 잘 쓰여져 있다.4-4. u의 첫 번째와 마지막 문자를 제거하고, 나머지 문자열의 괄호 방향을 뒤집어서 뒤에
문제는 쉽다고 생각한다.맨 앞에 원소 꺼냄남은 원소 중에 작은거 순회하면서 시간 초 증가근데 여기서 문제가 "1. 맨 앞에 원소 꺼냄"이다.일반 list를 쓴다면 정확성은 맞겠지만, 효율성에서 시간 초과가 뜰 것이다.핵심은 deque이다.deque의 popleft()가
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42842해당 문제는 사각형 면적 == brown+yellow인 것을 활용한 문제이다.brown+yellow의 약수를 구한다.여기서, width
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/12924해당 문제는 처음에 단순하게 1~n까지 더해오면서 맡으면 count += 1, 더해온게 더 커지면 종료라고 생각했다.문득 든 생각이 있
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43163최단 거리를 구하는 문제는 BFS로 접근하는 것이 좋다. DFS로 구하는 경우, 다시 순회할 지점을 잡기가 어렵기 때문이다.그래프에서는
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43105삼각형의 두번째 줄까지 먼저 만들어놓고, 세번째 줄부터는 왼쪽 위와 오른쪽 위 원소 중 최대값을 선택해서 더해나가는 것을 누적으로 진행
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42861그리디를 이용하여 최소 비용인 간선부터 찾아내야겠다는 생각은 했다.하지만, 모두 연결될 때까지 선택하는 조건을 알지 못하였고, 결국 크
문제 링크: 처음에는 BFS를 이용했다.노드를 방문하면서 최소 경로를 갱신하는데, 기존과 달리 방문한 노드라도 현재 거리 > 부모의 거리 + 부모와 현 노드의 거리가 만족하면 거리를 갱신하는 방법을 택했는다.하지만, 절반의 케이스만 성공하여 다익스트라 알고리즘 동작 방
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42579문제 분류는 해쉬이나, 해쉬랑 정렬을 같이 요구하는 문제이다.접근은 문제에 자세하게 나와있어서 어렵지 않았으나, sort()에서 다중
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42884해당 문제는 범위 계산 문제이다.첫 아이템을 기준으로 삼고,아이템을 순회하며 아이템의 시작점이 범위 안에 있다면 아이템의 끝 점이 범위