문제 링크
문제 링크주어진 두 큐의 각각 총합을 반복문으로 비교해서 목표로 하는 값(두 큐의 총합/2)보다 큰 큐에서 숫자를 뽑아 작은 큐로 옮기는 과정을 반복하면 최소 횟수를 구할 수 있다. 추가적으로 두 큐의 값이 어떤 방법을 통해서도 같아질 수 없는 경우 -1을 출력하기 위
문제 링크테두리의 한 변당 for문을 1개씩 써서 하나하나 모두 옮겨주는 방식으로 구현했다. 추가적으로 각 변을 탐색할 때 숫자의 최소값을 찾아 answer 배열에 추가해주었다.행렬 돌리기는 이 문제처럼 메인으로 다루기보다는 구현 문제의 일부로 종종 나오기 때문에 여러
문제링크visited 배열을 int형으로 선언해서 visited 배열에 각 칸까지 이동할 수 있는 최솟값을 저장해놓는다.기본적인 BFS문제이기 때문에 크게 어렵지 않게 풀 수 있었다.
문제링크(https://school.programmers.co.kr/learn/courses/30/lessons/76502괄호 판별하는 문제는 스택을 사용하면 편하다.스택을 활용하지 않고 괄호의 개수를 사용해서 풀어보려고 했으나 ({\[}]) 같은 경우 결국
문제링크(https://school.programmers.co.kr/learn/courses/30/lessons/12951문자열을 자르는 메서드인 substring()과 문자열을 각각 대문자, 소문자로 변환시켜주는 메서드인 toUpperCase(), toLow
문제 링크words 배열을 탐색하면서 탐색한 문자열을 Set에 계속 저장한 뒤, 탐색할 때 마다 Set에 저장이 되어있는지를 검사해 중복된 단어를 걸러주었다.
문제링크2명을 가장 효율적으로 태우는 방법은 남은 사람 중 가장 무거운 사람과 가장 가벼운 사람을 태우는 것을 파악하는 것이 중요했다.먼저 오름차순으로 정렬한 뒤, 가장 무거운 사람과 가장 가벼운 사람의 무게 합이 limit를 넘는지 확인한 뒤, limit를 넘지 않는
문제링크각 라운드가 지날때 마다 자신의 번호를 2로 나눈 뒤, 소수점을 올림처리하면 다음 차례의 번호를 알 수 있는 규칙을 찾는 것이 핵심이였다.규칙만 찾아서 그대로 적용하면 되기 때문에 간단한 문제였다. 위 규칙 대로 적용하면 n=8일 경우 1,2,3,4,5,6,7,
문제 링크(https://school.programmers.co.kr/learn/courses/30/lessons/92335문제에 언급된 규칙들이 결국 k진법으로 변환시킨 수를 0단위로 split한 뒤 소수 인지를 파악해야 한다는 뜻이였던걸 알아차리는 것이 중
문제 링크없애야 할 블록을 어떻게 판별할지, 블록을 어떤 방법으로 내릴 지를 빠르게 파악하는 것이 중요했다. 없애야 할 블록을 판별하는 방법으로 배열을 (0,0) 인덱스 부터 탐색한 다음,
문제 링크Integer 클래스 내부에 있는 메서드인 toBinaryString(), bitCount() 메서드를 알면 쉽게 풀 수 있는 문제였다.처음 풀 땐 count() 메서드를 직접 만들었지만, bitCount()라는 메서드가 동일한 역할을 해준다는 것을 배우고 난
문제 링크 핵심 > 인접행렬 또는 인접리스트를 만든 뒤, wires의 길이만큼 반복문을 돌고 wires[i]번째를 제거한 모든 경우의 수를 탐색하는 문제였다. 코드 먼저 문제에서 주어진 n과 wires를 활용해 인접리스트를 만들어줬다. 인접리스트를 만든 뒤 wir
문제 링크주어진 numbers를 순열로 뽑되 "1~numbers의 길이"개 만큼 뽑도록 반복해서 확인해줘야 했다."1~numbers의 길이" 개 만큼 뽑기 위해 순열을 구하는 메서드를 numbers 길이 만큼 반복한다.numbers의 모든 자릿수를 탐색하며 순열을 구한
문제 링크XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소