
10952번문제의 키 포인트 : 0 0 입력 될때 까지 A,B 받아서 A + B 출력하기.while True: 그리고 breakwhile True는 항상 참(True)이므로 끝없이 반복되는 루프를 생성합니다.종료 조건을 명확히 설계하지 않으면 프로그램이 무한히 실행되므

10807번 : 개수 세기문제 해결 접근법1\. list.count() - 리스트에서 특정 요소 개수 세기list.count() 메서드를 사용하면 리스트에서 특정 요소가 몇 개인지 쉽게 구할 수 있습니다.답 : 10871번: X보다 작은 수나의 문제 해결법:N,X,A를

10809번: 알파벳 찾기단어가 주어지면 a b c d e f ... z 까지 알파벳중에서 해당 각각 해당 알파벳이 있는지, 있다면 인덱스 몇번째에 있는지 출력하는 문제.어떤 함수를 써야하는 것 같은데 잘 모르겠다. find() 뭐 이런?GPT의 답 :find() 맞았

25083번: 새싹 예전 고양이 문제가 생각난다. 이스케이프 문자를 무시하고싶으면 print() 안에 r을 집어넣자. r은 raw 문자라는 뜻 답: 2444번: 별 찍기 -7 10분정도 고민해보고 실패. 고민의 흔적 삼각형을 두개로 나눠서 푸는구나.

2738번: 행렬 덧셈 N*M 크기의 행렬 두개를 더하는 문제. 우선 행렬을 어떻게 받을까? 배열을 선언하고 배열안에 배열을 넣는 방식으로 입력 받았다. 그러면 두개를 어떻게 더하지? 이중 반복문을 이용하면 돼. 빈 배열 row 를 선언하고 거기다가 A행렬의

2745번 - 진법 변환 예제 분석 : 36진법 수 ZZZZZ 를 10진법으로 바꾸는 식 : 풀이 알고리즘 : 1-1. N의 타겟 자릿수의 해당하는 것이 1~9 숫자면 그대로 매핑 1-2. N의 타겟 자릿수의 해당하는 것이 A~Z 알파벳이면 숫자로 매핑하기. N의

https://www.acmicpc.net/problem/1929해당 문제는 에라토스테네스의 체 문제이다.Sieve of Eratosthenes고대 그리스의 수학자 에라토스테네스가 만들어 낸 소수를 찾는 방법. 이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여

https://www.acmicpc.net/problem/4948공준 이란 : 한 영역의 기본적인 전제가 되는 명제문제만든 사람 이름인줄n보다 크고 2n보다 크지않은 범위내에서 소수의 개수 출력하는 문제이다.에라토스테네스의 체 를 활용해야 할 것 같다.위 코
https://www.acmicpc.net/problem/13909업로드중..N 개의 창문이 있을 때, 1의 배수부터 시작해서 창문이 열려있으면(1) 닫고(0), 닫혀있으면(0) 여는(1) 문제.(나는 이 행위를 토글로 받아들였다)마지막으로는 열려있는 창문(1

https://www.acmicpc.net/problem/17103골드바흐 파티션 : (2보다 큰)짝수 N을 두 소수의 합으로 나타내는 표현4 = 2+26 = 3+324 = 13+11 , 17+7 ...진짜네?그리고 한 개의 쌍이 아닐 수도 있다.문제가 요하는

https://www.acmicpc.net/problem/28278list에 append와 pop을 이용하여 스택을 구현할 수 있다.

https://www.acmicpc.net/problem/107731이상 정수가 입력되면 list에 넣고,0이 입력되면 가장 최근 값을 지운 뒤총 list에 수들의 합을 출력하는 문제pop() 함수를 이용하여 간단하게 풀 수 있는 문제였다.

https://www.acmicpc.net/problem/9012문제는 어렵게 보이지만 결국 올바른 괄호 문자열 ' ( ' , ' ) ' 을 썼는지 확인하는 문제. 올바르게 썼다면 YES, 아니라면 NO 를 출력.입력받은 문자열 내에서 for문을 돌아서 만약

https://www.acmicpc.net/problem/4949온점 (".") 하나를 찍을 때까지 반복해서 문장을 받는데 괄호가 잘 열리고 닫겼는 지 파악해서 YES or NO를 출력하는 문제.문자열을 받고 for 문을 돌아 ( 나 를 만나면 리스트에 ap

https://www.acmicpc.net/problem/18258큐에 개념에 대해 알아보는 문제리스트를 활용하여 풀었지만 시간 초과가 났다.deque를 활용하여 풀기
파이썬으로 코딩테스트 문제를 풀다가 에 대해 마주했고 꽤 자주 마주쳐서 이제는 좀 친해져야겠다 생각이 들어 정리해본다.우선 deque 는 '덱' 이라 발음되고, "double-ended-queue" 에 줄임말이다.양쪽에서 추가, 제거할 수 있는 자료구조이다.append

https://www.acmicpc.net/problem/21641부터 N까지의 카드가 위 1 , 아래 N 의 형태로 쌓여있을 때두가지 행동을 반복한다.맨 위 카드를 버린다.다음 맨 위가 된 카드를 가장 아래에 깐다.한장이 남을 때 까지 반복한다.N = 5 일

https://www.acmicpc.net/problem/24313이 문제는 두 개의 선형 함수 𝑓(𝑁)과 𝑔(𝑁)이 주어졌을 때, 𝑓(𝑁)이 𝑔(𝑁)보다 빠르게 증가하지 않는지를 확인하는 문제입니다.함수 f(N)=aN+b와 g(N)=cN이 주어

https://www.acmicpc.net/problem/11866문제에서 (7,3) -> <3,6,2,7,5,1,4>가 나온다고 하였다.어떻게 나왔는 지 보자.7은 N, 사람 수를 의미하고 차례로 N만큼 원을 그리며 앉아있다.3번째 인원 부터 제거 한다

https://www.acmicpc.net/problem/28279시키는 대로 하면 되는 간단한 문제

https://www.acmicpc.net/problem/2346예전에 풀었던 요세푸스 문제와 비슷한 것 같다.예제 입력 1을 보면이렇게 풍선이 존재하고 제일 처음 1번 풍선부터 터트리면 안에 있는 숫자가 양수라면 그 숫자만큼 시계방향으로 이동해 해당 풍선을

https://www.acmicpc.net/problem/24511문제 이해를 하는 데 한참 걸렸다.예제 입력 1을 이해해보자.총 다섯번 고정으로 인풋을 받는다.queuestack이라는 자료구조의 개수. N여기서 queuestack은 어떠한 자료구조인데 0의

https://www.acmicpc.net/problem/15439상의 N벌, 하의 N벌각자 상하의 세트로 같은 색깔일 때, 색상이 다른 조합의 개수.그냥 수학적으로 생각하면 하나의 색깔을 골랐을 때 다른 색깔을 고를 수 있는 경우의 수는 전체-1 이기 때문에

https://www.acmicpc.net/problem/24723내려올 수 있는 방향의 가짓수를 구하는 문제1-> 2,2-> 4예제 입력에서 유추할 수 있듯이왼 or 오 로 방향이 두개이기때문에2의 N승을 출력해주면 되는 간단한 문제

https://www.acmicpc.net/problem/10872N! 을 연산하는 간단한 문제 for문, 재귀함수문 등으로도 풀 수 있지만 내 경우 가장 먼저 손이 갔던 반복문은 while이어서 while문으로 풀었다.

https://www.acmicpc.net/problem/4134내부 for문:n이 소수인지 판별하기 위해 2부터 루트n 까지의 모든 정수로 n을 나누어봅니다.만약 n이 어떤 수로도 나누어지면 (즉, 나머지가 0이면) 소수가 아니므로 break로 for문을 종

https://www.acmicpc.net/problem/2485해결 키 포인트 : 첫 가로수 위치 변수로 저장가로수 간격 배열로 저장간격들중 최대 공약수 찾기(math 라이브러리 gcd 메소드 이용,유클리드 호제법으로도 가능)간격을 최대공약수로 나누어 1을

https://www.acmicpc.net/problem/11050

https://www.acmicpc.net/problem/1010'사이트' 라고 하는 것이 강을 기준으로 왼쪽,오른쪽에 있다.왼쪽을 N개 오른쪽을 M개라고 했을 때 N <= M 개가 있고그림처럼 교차되는 경우가 없게끔 다리를 짓고 싶을 때 N,M을 주어줬

https://www.acmicpc.net/problem/10371을 제외한 어떤 수의 약수가 주어졌을 때 어떤 수 N을 찾는 문제.1을 제외한 약수의 개수가 자연수라고 했으므로 N은 소수(prime)가 될 수 없다.만약 N이 소수가 아니라면, 주어진 수 중

https://www.acmicpc.net/problem/25192ENTER라는 문자열 후에 나오는 문자열 개수를 셀건데. 최초의 한번만 세라.그리고 만약 ENTER라는 문자열이 또 나온다면, 또 최초의 한번만 세기.세어진 개수 출력하는 문제!중복을 세지 않는

https://www.acmicpc.net/problem/26069N번 사람을 1대1로 만나게 할건데 , 사람1 사람2이런 식으로 공백을 사이로 만나게 한다.그런데 무지개 댄스를 추고 있는 ChongChong(chongchong과는 구별해야 함) 이라는 사람과

https://www.acmicpc.net/problem/2108정수 N을 입력받고 (단 N은 홀수)1\. 산술평균 (소수점 이하 첫째 자리에서 반올림)2\. 중앙값3\. 최빈값4\. 범위 를 출력하는 문제.모든 수의 합을 수의 개수로 나눈 값.소수점 첫째 자

https://www.acmicpc.net/problem/20920

🔗 문제 보러가기재귀함수를 이용하여 팩토리얼을 구현하는 간단한 문제이다.입력: 0 ≤ N ≤ 20출력: N!함수가 자기 자신을 호출하여 문제를 해결하는 방식.종료 조건(Base Case)을 반드시 명시해야 함점점 더 작은 문제로 나누다 보면 결국 base case에

https://www.acmicpc.net/problem/10870 피보나치 수는 F(0) = 0, F(1) = 1일 때, F(n) = F(n-1) + F(n-2)로 정의된다. n이 주어졌을 때, 피보나치 수를 출력하면 된다.재귀는 직관적이지만, 중복 호출이

https://www.acmicpc.net/problem/25501문자열이 팰린드롬인지 재귀 함수로 판별하고, 재귀 함수가 몇 번 호출되었는지도 함께 출력하는 문제.팰린드롬이란?앞에서 읽으나 뒤에서 읽으나 같은 문자열예: "ABBA", "ABABA"문제에서는

https://www.acmicpc.net/problem/24060병합 정렬(Merge Sort)의 동작 과정 중, 정렬된 값을 리스트에 저장하는 시점을 추적하여 K번째 저장되는 값을 찾는 방식으로 구현

문제 링크 : https://www.acmicpc.net/problem/47793^N 을 정수로 받고, 이것을 '-'의 개수로 치환한뒤 전체 '-'의 개수를 3등분하여 가운데 영역을 제외, 그리고 1/3된 영역도 동일하게 반복하여 마지막 '-'가 한개 남을때까

Temp Body
✅ 문제 설명이 문제는 자연수 N과 M이 주어졌을 때, 1부터 N까지의 수 중에서 중복 없이 M개를 고른 모든 순열을 출력하는 문제이다.출력은 사전 순으로 정렬되어야 하며, 각 수는 한 번만 사용 가능하다.📌 조건 정리:1 ≤ M ≤ N ≤ 8중복 없이, 순서를 고려

https://www.acmicpc.net/problem/11729언젠가 더 지니어스 이런곳에서 봤던 것 같은 하노이 탑 문제이다.예제 입력 1 을 통해 문제를 우선 체득해보겠다.예제 입력에 3이 입력되면 첫번째 장대에 3층짜리 탑이 있다는 뜻이다.이를 세번

https://www.acmicpc.net/problem/15650자연수 N과 M이 주어졌을 때, 1부터 N까지의 수 중에서 중복 없이 M개를 고른 수열을 오름차순으로 모두 출력해라. 라는 문제이다.

1부터 N까지의 자연수 중 M개를 중복을 허용하여 고른 수열을 모두 출력출력은 사전 순으로 증가각 수열은 한 줄에 출력, 수 사이에는 공백예시로 살펴보면입력 3 1이라면,1부터 3까지 숫자 중 1개를 뽑아 중복 허용 → 가능한 수열: 1, 2, 3입력 3 2라면,→ 가

https://www.acmicpc.net/problem/156521부터 N까지의 숫자들 중 M개를 뽑는데 중복은 허용하되, 크기의 순서가 있게 뽑는 경우의 수를 뽑는 문제.첫번 째 숫자를 고정하고 백트래킹 알고리즘을 재귀적으로 호출하여 두번째 숫자를 resu

https://www.acmicpc.net/problem/9663N x N 체스판 위에 퀸 N개를 놓을건데 서로 공격할 수 없게 놓는 경우의 수.♛ 퀸(Queen)은 어떻게 움직일까?퀸은 다음 방향으로 움직일 수 있다:가로줄 전체 (→ ←)세로줄 전체 (↑ ↓

업로드중..https://www.acmicpc.net/problem/24416피보나치 수열이다. 재귀함수 말고 동적 프로그래밍으로 풀면 어떤게 좋은지 알아보기 위한 문이다.동적 프로그래밍(Dynamic Programming)은복잡한 문제를 작은 하위 문제들로

https://www.acmicpc.net/problem/9184재귀함수 w(a,b,c)를 출력하는 프로그램을 구현해야한다.우선 재귀함수 w(a,b,c) 를 이해해보자.그냥 이것을 파이썬으로 구현하면 다음과 같다.그러나 함수가 계속 재귀적으로 호출하기 때문에

https://www.acmicpc.net/problem/1904타일의 개수 N 이 주어졌을 때 만들 수 있는 2진 수열의 개수를 15746으로 나눈 나머지를 출력해야한다.타일은 '1'또는 '00'을 사용해야한다.즉 N=1, 1만 만들 수 있고 , f(1) =

https://www.acmicpc.net/problem/9461나선형의 모양으로 삼각형이 계속 추가된다고 한다.1 1 1 2 2 3 4 5 7 9 가 주어졌는데 보니f(1) = 1f(2) = 1 f(3) = 1 f(4) = 2f(5) = 2f(6) = 3f(

https://www.acmicpc.net/problem/1912numsi 혼자서 새로 시작할지 이전 dpi-1 + numsi로 이어갈지그중 더 큰 값을 선택해서 dpi에 저장 하는 방식으로 풀면 될 것 같다.

https://www.acmicpc.net/problem/1149각 집을 빨강(R), 초록(G), 파랑(B) 중 하나로 칠할 수 있음.조건: 인접한 집은 같은 색으로 칠할 수 없음목표: 1번 집부터 N번 집까지 칠할 때, 전체 비용의 최소값을 구하라.DP\[i

https://www.acmicpc.net/problem/1932정수로 이루어진 삼각형이 주어짐.위에서부터 아래로 내려오며, 인접한 수만 선택 가능.최대 합을 구하라.DP\[i]\[j]: i행 j열까지 내려왔을 때의 최대 합위에서 아래로 누적합을 계산하며 내려

https://www.acmicpc.net/problem/1463정수가 주어졌을 때 3으로 나누거나, 2로나누거나, 1을 빼는 세 연산을 이용해서 가장 효율적으로 1을 만드는 문제이다.시간 제한이 0.15초로 짧아 보인다.메모이제이션 없이 재귀적으로 풀면 시간

https://www.acmicpc.net/problem/10844계단 수란 각 자리수마다 인접한 숫자의 차이가 1인 수를 의미한다.예) 45656 → 계단 수 (4→5→6→5→6 차이가 모두 ±1)길이가 N인 계단 수의 개수를 구하라는 문제이다. 단, 0으로

https://www.acmicpc.net/problem/2156포도주는 연속으로 3잔을 마실 수 없다는 제한이 있다.마실 수 있는 경우는 다음과 같다:이번 잔을 마시지 않는다.이번 잔과 바로 전 잔을 마시고, 그 전 잔은 마시지 않는다.이번 잔과 그 전 전

https://www.acmicpc.net/problem/11659N과 M이 100,000 이하이고 시간도 1초로 제한되어 있다.그냥 풀면 100% 시간 초과가 날 것 같다. 전처리가 필요하다.이 경우 누적합을 미리 정의해놓고, 꺼내 쓰면 된다.arr = 5,

https://www.acmicpc.net/problem/14888N개의 수와 N-1개의 연산자(+,-,x,/) 가 주어졌을 때 만들 수 있는 식의 결과가 최대, 최소 인 것을 구하라.계산은 앞에서부터.입력은 첫째 줄에 수의 개수 N,둘째줄에 수열.셋째줄에 연

(1,1) 좌표부터 (m,n) 좌표까지 가는 최소 루트 개수 구하기.DP 테이블을 만들어서 dpi = (i,j)에 도달할 수 있는 경로의 수로 정의초기값: dp1 = 1 (시작점)점화식:dpi = dpi-1 + dpi단, 해당 좌표가 물에 잠긴 곳이면 dpi = 0

https://www.acmicpc.net/problem/11054수열이 주어졌을 때 가장 긴 바이토닉 수열의 길이를 출력하는 문제.바이토닉 수열(Bitonic Sequence)은 다음 두 조건을 만족하는 수열이야:어느 한 지점을 기준으로 왼쪽은 strictl

전봇대에 번호를 입력받아서 교차되는 전깃줄이 없게끔 하고 싶을 때 없애야 하는 전깃줄의 최소 개수를 출력하는 문제.A 전봇대에 숫자를 1,2,3,4, ...10 에서 차례로 B로 쏜다고 할 때f(A1) < f(A2) 가 성립하면 된다. ( = 이 들어가지 않는 이

https://www.acmicpc.net/problem/9251LCS: 최장 공통 부분 수열 을 찾는 문제.ACAYKP와 CAPCAK의 LCS는 ACAK 이다.그리고 출력은 이 ACAK의 length 인 4를 출력해주면 된다.한 문자열을 기준으로 잡고, 한

https://www.acmicpc.net/problem/2559정수가 N개 주어지고개수 K가 주어졌을 때어떠한 지점에서의 연속한 K개의 합이 가장 클때를 출력하는 문제슬라이딩 윈도우 방식으로 풀었다.배열에서 연속된 일정 범위(k개)의 값만을 이동하며 계산할

https://www.acmicpc.net/problem/12865물건 N개, 무게 W, 가치 V, 최대 K만큼의 무게에 한해서 배낭에 넣을때 넣을 수 있는 물건들의 가치의 최댓값 출력하는 문제.첫쨋줄에 N, K 를 입력받고 둘쨋줄 부터 W와 V를 입력받는다

https://www.acmicpc.net/problem/16139첫쨋줄에 문자열 S를 입력받고둘쨋줄에 질문 개수 q셋쨋줄부터 특정 알파벳, 시작인덱스, 끝인덱스 를 공백을 기준으로 입력받아서해당 특정 알파벳이 시작인덱스부터 끝 인덱스까지에서 몇개 나오는 지

https://www.acmicpc.net/problem/10986누적합 알고리즘 다시 리마인드하자.i부터 j번째까지의 누적합은Sj-Si-1 로 구할 수 있었다.그리고 누적합의 나머지의 성질도 하나 알아야 한다.어떤 수 A와 B가 있을 때, A - B가 M으로

https://www.acmicpc.net/problem/11660N × N 크기의 표에 수가 채워져 있고,(x1, y1)부터 (x2, y2)까지의 직사각형 영역에 있는 수들의 합을 구하는 쿼리를 Q번 수행해야 한다.

https://www.acmicpc.net/problem/11047동전의 종류 N개, 목표 합을 K로 첫째 줄에 입력받았을 때,목표 합 K에 도달하는 동전의 최소개수를 구하는 문제.동전의 값을 내림차순으로 정렬하여 큰 값부터 K를 나누어 몫을 개수에 더하고나머

https://www.acmicpc.net/problem/11399사람이 N명 있고, 각자 소요시간이 정해져있을 때 각각의 소요시간+대기시간 의 전체합이 가장 최소가 되게 하는 문제.최소가 되려면 소요시간은 바꿀 수 없으니 대기하는 시간을 최소로 해야한다.즉

https://www.acmicpc.net/problem/25682https://www.acmicpc.net/problem/1018예전에 풀었던 문제 '1018번: 체스판 다시 칠하기' 에 다른 버젼인 문제이다.그때는 8보다 크거나 같은 수 M,N을

https://www.acmicpc.net/problem/1541괄호가 없는 식에 괄호를 쳐서 가장 최소로 값을 만드는 문제."-" 뒤에 오는 모든 숫자들을 괄호로 묶어서 한 번에 빼면 최소값이 된다.왜냐하면 괄호를 적절히 친다. 라는 것은a - b + c -

가장 왼쪽에서, 가장 오른쪽으로 갈건데, 거리가 정해져있고, 기름값이 각 노드마다 정해져있다. 기름값을 최소화하되 목적지까지 갈때 드는 비용을 출력하는 문제.가격을 최소화하기 위해, 기름값이 가장 싼 곳에서 가장 많이 구매해야한다.가장 싼 곳에서 가야할 km만큼의 기름

https://www.acmicpc.net/problem/1931회의를 최대한으로 많이 하려면 어떻게 해야할까?회의의 종료시간을 기준으로 가장 빠른 회의를 선택회의 정보를 (시작시간, 끝시간) 형태로 입력 받음1\. 끝나는 시간 기준으로 오름차순 정렬2\. 끝

https://www.acmicpc.net/problem/2630백준 분할정복 첫문제큰 문제를 작은 문제로 나눠서(분할), 각 문제를 재귀적으로 해결한 다음, 그 결과를 합쳐서 전체 문제를 해결하는 알고리즘 전략.→ 문제를 더 작은 하위 문제들로 나눈다.→ 일

https://www.acmicpc.net/problem/1992백준 2630번 색종이 접기와 비슷한 문제이다.N\*N 정사각형을 4사분면으로 4등분하여 0과 1을 압축하여 괄호와 0과 1로 표현하는 문제이다.색종이 접기 문제에서 괄호 넣는 로직을 추가해주고

https://www.acmicpc.net/problem/1780쿼드트리의 문제인데 9등분 하고, 1과 0 이외에 -1도 압축하는 문제이다.

https://www.acmicpc.net/problem/1629문제 자체는 심플한데 그냥 곱하고 나누면 시간초과가 난다.분할 정복을 이용한 거듭제곱 기법 을 써야한다.무엇이냐 하면 2의 32승을 계산할때 2를 32번 곱해야하지만 2의 16승의 제곱을 해도 된

https://www.acmicpc.net/problem/11401이항 계수 (N, K) = N! / K!(N-K)! 으로 구할 수 있다. 이를 1,000,000,007로 나눈 값을 구하는 문제이다.나눗셈에서의 모듈러 연산: 페르마의 소정리일반적으로 (A /

https://www.acmicpc.net/problem/2740행렬 두개를 입력받아, 행렬의 곱을 연산하여 출력하는 문제이다.행렬의 곱은 A 행렬의 열 개수 = B 행렬의 행 개수여야 곱셈이 가능하다.예시 1의 경우1 23 4 5 63행 2열로 이루어져있는

https://www.acmicpc.net/problem/10830행렬의 거듭제곱 문제와 자연수의 거듭제곱을 분할정복으로 푼것을 활용하여 푼다.A^k일 때k가 홀수이면, A^(k//2) A^(k//2) A 로 분할k가 짝수이면, A^(k//2) \* A(k//

https://www.acmicpc.net/problem/11444dp로 풀었던 피보나치 문제는 행렬의 거듭제곱으로도 계산이 가능하다.피보나치 수열은 다음 점화식을 따른다.이걸 행렬로 표현하면 다음과 같은 관계가 성립한다.즉, 아래의 기본 행렬을 n-1제곱 한

https://www.acmicpc.net/problem/3273"투 포인터" 라는 유형의 문제이다.‘투 포인터(Two Pointer)’는 정렬된 배열에서 두 개의 포인터를 움직이며 효율적으로 값을 찾는 기법이다. 보통 O(N²) 시간이 드는 걸 O(N) 또는

난이도 : 실버 5 유형 : 투포인터https://www.acmicpc.net/problem/2018N을 입력 받고,그 N을 '연속된 자연수의 합' 으로 나타낼 수 있는 경우의 수가 몇가지 있는지 출력하는 문제이다.15 의 경우157+84+5+61+2+3+4+

난이도 : 골드 2유형 : 이분 탐색https://www.acmicpc.net/problem/12015언젠가 풀어봤었던 LIS(Longest Increasing Subsequence) 문제이다. 이분 탐색 방법으로도 풀 수 있다하여 재도전한다.LIS 리스트를
난이도 : 실버 2 유형 : DFS https://www.acmicpc.net/problem/24479 문제 접근 이 문제를 풀기위해서는 깊이 우선 탐색(DFS)에 대한 개념이 필요하다. DFS,BFS 개념 에서 간단하게 다루어 보았다. 그러나 다른 포스팅 보며

난이도 : 실버 2유형 : DFShttps://www.acmicpc.net/problem/2448024479번과 동일하되, 인접 노드를 작은수부터 큰수 순으로 방문하는 오름차순이 아닌 큰 수부터 작은 수 순으로 방문하는 내림차순 으로 방문하는 것이 차이이다.

난이도 : 실버 2유형 : 너비우선탐색 - BFShttps://www.acmicpc.net/problem/24444너비 우선 탐색 BFS를 구현하는 문제이다.BFS에 관한 내용은 BFS에 정리해보았지만 다른 좋은 글들이 많으니 그것들을 참고하길 바란다.BFS,

난이도 : 실버 3유형 : https://www.acmicpc.net/problem/2606노드와 간선으로 이루어져있는 무방향 그래프가 보인다.시작 노드가 주어지고, 전체 순회했을 때 순회한 노드의 수를 출력하는 문제\-> DFS 나 BFS 로 구현하면 될 것

난이도 : 실버 2유형 : DFS, BFShttps://www.acmicpc.net/problem/1260그래프를 1.DFS로 탐색한 결과와 2.BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가

난이도 : 실버 1유형 : BFS or DFS (여기선 내가 더 약한 BFS로 풀었다.)https://www.acmicpc.net/problem/2667BFS로 풀려고 했는데, 우선 해당 문제는 노드, 간선 이 주어지지 않고 0,1 로 이루어진 행렬의 형태로

Temp Body

난이도 : 실버 1유형 : BFShttps://www.acmicpc.net/problem/2178최단거리를 구할땐 DFS 가 아닌 BFS 를 써야 한다.(1,1) ,즉 맨 왼쪽위부터 시작했을 때(단 여기서는 인덱스 1,1이 첫번쨰다)1이라고 되어있는 곳만 지나

난이도 : 실버 1유형 : BFShttps://www.acmicpc.net/problem/1697수빈이는 현재 위치 N에 있음.동생은 K에 있음.수빈이는 매 초마다 다음 세 가지 중 한 가지 행동 가능:X - 1 (1초 후)X + 1 (1초 후)2 \* X (

난이도 : 실버 1유형 : BFS 너비 우선 탐색https://www.acmicpc.net/problem/7562체스판 위에 나이트가 있다.이 나이트를 목표 위치까지 최소 몇 번 이동시켜야 하는지 구하는 문제다. 나이트는 체스에서 아래 8방향으로 움직일 수

동적 프로그래밍에 대해 정리해보려고 한다.꽤나 짜치는 동적 프로그래밍 이름의 유래.동적 프로그래밍 (Dynamic Progamming, DP) 란 복잡한 문제를, 여러 개의 작은 하위 문제로 나누어 해결하고자 하는 알고리즘 설계 기법 중 하나이다.각 하위 문제의 해결

난이도: 골드 1유형 : 이분탐색https://www.acmicpc.net/problem/1300어떤 N×N 크기의 표가 있다.각 칸 (i, j)에는 i \* j의 값이 들어간다.이 표를 1차원 배열로 펴서 오름차순 정렬했을 때,k번째로 작은 수를 구하는 문제
난이도 : 백준 5 유형 : 그래프 탐색 (BFS) 다중 시작점 BFS (여러 개의 시작점) https://www.acmicpc.net/problem/7576 문제 접근 해답 및 풀이
난이도 : 골드 3 유형 : BFS https://www.acmicpc.net/problem/2206 문제 접근 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에

난이도 : 골드 3 유형 : 위상정렬 https://www.acmicpc.net/problem/2252 문제 접근 학생들을 키순으로 줄을 세우는 데, 전체 키가 주어져있지 않고, 누가 더 큰 지 비교된 값만 주어졌을 때 키순으로 출력하는 문제이다. 위상정렬 유

난이도 : 골드 1유형 : 위상정렬https://www.acmicpc.net/problem/3665 작년 순위와 상대적인 순위가 바뀐 모든 팀의 목록이 주어졌을 때, 올해 순위를 만드는 프로그램을 작성하시오.상대 순위를 가지고 최종 순위를 만든다? \-> 위상

난이도 : 실버 2유형 : 우선순위 큐https://www.acmicpc.net/problem/11279단계별로 풀어보기 - 우선순위 큐 유형에 첫번째 문제이다.우선순위 큐, heap에 대한 개념이 필요해 정리 후 풀겠다.일반적인 큐(Queue)는 "먼저 들어

난이도 : 실버 1유형: 우선순위 큐https://www.acmicpc.net/problem/11286n번 x를 입력받을건데x가 0이 아니라면 배열에 x를 추가할것이고x가 0 이라면 배열에서 절댓값이 가장 작은 요소를 출력및 제거한다.(단 절댓값이 가장 작은

난이도 : 실버 3유형 : 우선순위 큐https://www.acmicpc.net/problem/2075N을 입력받고, N \* N 2차원 행렬이 만들어지는데이 때 N번째로 큰 수를 구하는 문제이다.단 같은 열의 수들은 열이 클수록 숫자값도 큰 규칙을 띈다.이걸

난이도 : 골드 2유형 : 우선순위 큐https://www.acmicpc.net/problem/2696여러 테스트케이스가 주어지고, 각 테스트마다 수열이 최대 10,000개까지 주어진다.이 수열을 앞에서부터 하나씩 보면서, 홀수 번째 수를 입력받을 때마다 중앙

난이도 : 골드 2유형 : 우선순위 큐https://www.acmicpc.net/problem/1202보석 N개: 각 보석은 무게 M, 가격 V를 가짐.가방 K개: 각 가방은 최대 무게 C까지 수용 가능.가방 하나에는 보석 하나만 넣을 수 있음.훔칠 수 있는

난이도 : 골드 2유형 : 위상정렬, 우선순위 큐https://www.acmicpc.net/problem/1766이 문제는 위상정렬 문제이므로 위상정렬에 대해 다시 떠올려본다.위상정렬 알고리즘은 방향이 있고 cycle이 없는 DAG그래프에 대해 성립하고진입차수

난이도 : 골드 4유형 : 다익스트라https://www.acmicpc.net/problem/1753가중치 그래프와 시작노드를 입력받고, 1번부터 노드개수 번까지 i번째 줄에 i번 정점으로의 최단 경로의 경로값을 출력하는 문제.1-> 1 : 01-> 2 : 2

난이도 : 골드 4유형 : 최단경로https://www.acmicpc.net/problem/1504예제 1을 그림으로 표현했다.위와같이 1부터 N까지 노드가 있고 각 노드 사이에는 양방향 가중치 간선이 있다.v1과 v2를 입력받은 후1번부터 N번까지의 최단경로

난이도 : 골드 5유형 : 최단경로https://www.acmicpc.net/problem/13549수빈이의 위치 N, 동생의 위치 K (0 ≤ N, K ≤ 100,000)가능한 이동 방법:X - 1 (1초 소요)X + 1 (1초 소요)X \* 2 (0초 소요

난이도 : 골드 2유형 : 최단경로https://www.acmicpc.net/problem/9370n 노드 개수, m 간선 개수, t 목적지 후보 개수 를 입력받고s 출발 노드 g,h 노드 (g와 h를 잇는 간선을 지나감) 를 입력받는다.그리고 간선 m개의 정

난이도 : 골드 4유형 : 최단거리https://www.acmicpc.net/problem/11404도시의 개수 N (1 ≤ N ≤ 100)버스의 개수 M (1 ≤ M ≤ 100,000)모든 도시 쌍 (i, j)에 대해 최소 비용을 구하는 문제이다.여기에는 플

난이도 : 골드 4유형 : 최단경로https://www.acmicpc.net/problem/1956V개의 마을와 E개의 도로로 구성되어 있는 도시가 있다. \-> 노드 : V, 간선 : E도로는 마을과 마을 사이에 놓여 있으며, 일방 통행 도로이다. 마을에는

난이도 : 골드 5유형 : 투포인터https://www.acmicpc.net/problem/2470숫자의 개수 N을 입력받고N개만큼의 숫자 배열을 입력받는다 이 숫자 배열에서 0에 가장 가까운 숫자는 무엇인지 찾아내 오름차순으로 출력해주면 된다.(만약 복수정답

난이도 : 골드4유형 : 투포인터https://www.acmicpc.net/problem/1806길이 N짜리 수열이 주어진다.그리고 타겟넘버 S가 주어지는데이 수열의 부분합 중 크기가 S 이상이 되는 것들 중에 가장 길이가 짧은 부분합의 크기를 출력하는 문제이

난이도 : 골드 3유형 : 투 포인터https://www.acmicpc.net/problem/1644하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다.3 : 3 (한 가지)41 : 2+3+5+7+

난이도 : 골드 1유형 : 투 포인터https://www.acmicpc.net/problem/1450세준이는 N개의 물건을 가지고 있고, 최대 C만큼의 무게를 넣을 수 있는 가방을 하나 가지고 있다.\-> 물건 개수 : N, 가방의 적재할 수 있는 최대 무게

난이도 : 골드 3유형 : DPhttps://www.acmicpc.net/problem/11066해당 문제는 여러개의 파일을 하나로 합치는 과정에서 필요한 비용의 최솟값을 구하는 문제이다.2개의 파일을 1개의 파일로 합치는 과정을 최종 1개의 파일이 될 때 까

난이도 : 골드 3유형 : DPhttps://www.acmicpc.net/problem/11049행렬의 곱셈을 할때 필요한 곱셈의 연산의 수의 최솟값을 구하는 문제.우선 행렬의 곱에 대해 다시 리마인드해보자.행렬 A와 B를 곱하려면,A의 열의 수와 B의 행의

난이도 : 골드 3유형 : DPhttps://www.acmicpc.net/problem/1520(0, 0)에서 (M-1, N-1)까지 이동하는 경로의 수를 구하는 문제단, 항상 현재 위치보다 낮은 곳으로만 이동 가능 (상하좌우)단순 DFS로는 중복 방문이 너무

난이도 : 골드 3유형 : DP 심화https://www.acmicpc.net/problem/2629문제가 원하는 것 :추들의 무게와 확인할 구슬들의 무게가 입력되었을 때, 주어진 추만을 사용하여 구슬의 무게를 확인 할 수 있는지를 결정하는 프로그램을 작성하시

난이도 : 골드 4유형 : DP 심화https://www.acmicpc.net/problem/2293n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용\*\*해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수

난이도 : 골드 3유형 : DP 심화https://www.acmicpc.net/problem/7579N개의 앱이 있음. 각각의 앱은 메모리를 차지하고 있고, 앱을 비활성화하면 일정한 비용이 든다.최소의 비용으로 M 바이트 이상의 메모리를 확보하고 싶다.첫째 줄

난이도 : 골드 3유형 : DP 심화https://www.acmicpc.net/problem/11062카드 숫자 배열이 주어졌을 때, 두명의 플레이어가 가장 왼쪽 혹은 가장 오른쪽카드를 번걸아가면서 가져갈 수 있을때, 두 명의 플레이어 모두 가장 최선의 선택을

난이도 : 실버 1유형 : DP, 역추적https://www.acmicpc.net/problem/12852X가 3으로 나누어 떨어지면, 3으로 나누다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.이 세가지 방법을 이용하여 가장 효율적으로 1을 만드는 문

난이도 : 골드 4유형 : DP , 역추적https://www.acmicpc.net/problem/14002수열 A가 주어진다.이 수열에서 가장 긴 증가하는 부분 수열(LIS)의 길이와,그 중 하나를 실제로 구해 출력하는 문제다.dpi = i번째 수를 마지막으

난이도 : 플레티넘 5유형 : DP, 역추적https://www.acmicpc.net/problem/14003가장 긴 증가하는 부분 순열 4 과 동일한 문제이다.다른 점은 조건인데 4의 경우 A의 크기 N (1 ≤ N ≤ 1,000)수열 A를 이루고 있는 A
난이도 : 골드 4 유형 : DP, 역추적 https://www.acmicpc.net/problem/9252 문제 접근 두 문자열 A, B가 주어진다. 이때 두 문자열의 최장 공통 부분 수열(LCS) 을 구하고, 그 길이와 LCS 문자열을 출력하는 문제이다. 부

난이도 : 플래티넘 4유형 : DP (동적계획법)https://www.acmicpc.net/problem/2618가로, 세로가 N인 도로 위에서 두 대의 경찰차가 각각 사건을 처리한다.총 W번의 사건이 주어지며, 각 사건마다 (x,y) 좌표가 주어진다. 경찰

문제 유형 : BFS, 역추적난이도 : 골드 4https://www.acmicpc.net/problem/13913수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에

난이도 : 골드 4유형 : BFS, 역추적https://www.acmicpc.net/problem/9019네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의

난이도 : 골드 3유형 : 다익스트라, 역추적https://www.acmicpc.net/problem/11779한 노드에서부터 다른 노드까지의 최소비용? 그리고 간선의 비용이 모두 양수?\-> 다익스트라 알고리즘 이용.\-> 이 문제는 다익스트라 + 역추적입력

난이도 : 골드 2유형 : 플로이드-워셜, 역추적https://www.acmicpc.net/problem/11780역추적을 제외하면 풀어본 문제이다.백준 11404번: 플로이드 \[python]모든 정점에서 모든 정점으로의 최소거리를 구할 때 쓰는 알고리즘이

난이도 : 실버 2유형 : 트리https://www.acmicpc.net/problem/11725노드의 개수 N 을 입력 받고연결된 두 정점이 주어졌을 때 예제 1을 그림으로 그려보면 다음과 같은 트리가 만들어진다.출력은 1번 노드를 제외하고 2번노드부터 N번

난이도 : 골드 2유형 : 트리 https://www.acmicpc.net/problem/1167트리의 지름을 구하는 프로그램을 만드는 문제이다.트리의 지름이란, 트리에서 임의의 두 점 사이의 거리중 가장 긴 것을 말한다.트리의 지름을 구할 때는 보통 두 번의

난이도 : 골드 4유형 : 트리https://www.acmicpc.net/problem/1967트리의 지름 구하는 문제이다.트리의 지름 구하는 문제 는 풀어봤다.BFS 두번 돌려서 풀었다.입력 로직이 더 단순했던 , 전에 풀었던 문제보다 더 쉬웠던 문제였다.

난이도 : 실버 1유형 : 트리https://www.acmicpc.net/problem/1991이진 트리의 구조가 주어졌을 때,전위 순회 (Pre-order)중위 순회 (In-order)후위 순회 (Post-order)한 결과를 각각 출력하는 문제이다.트리 구

난이도 : 골드 1유형 : 트리https://www.acmicpc.net/problem/2263노드의 개수,중위 순회 와 후위 순회가 주어졌을 때전위 순회를 어떻게 할 지 출력하는 문제.이진 트리는 (전위 + 중위), (중위 + 후위) 순회 결과로 트리를 구성

난이도 : 골드 4유형 : 트리https://www.acmicpc.net/problem/5639전휘 순회한 이진 검색트리의 결과가 주어졌을 때 이를 후위 순회한 결과를 출력하는 문제이다. 왼쪽 서브트리에는 작은 값, 오른쪽 서브트리에는 큰 값이 들어간다.전위

난이도: 골드 4유형 : 트리https://www.acmicpc.net/problem/4803그래프가 주어졌을 때, 각 연결 요소가 트리인지 판단하여, 전체 그래프 내에 트리의 개수를 출력하는 문제이다.트리의 정의: 사이클이 없는 연결 그래프그리고 연결되어있는

난이도 : 골드 5유형 : 유니온 파인드https://www.acmicpc.net/problem/1717맨 앞에 숫자가 0이냐 1이냐에 따라0 a b → a와 b가 포함된 집합을 합침 (Union)1 a b → a와 b가 같은 집합에 속해있는지 확인 (Find
난이도 : 골드 4 유형 : 유니온 파인드 https://www.acmicpc.net/problem/1976 문제 접근 여러 도시가 있고, 어떤 도시는 서로 도로로 연결되어 있다. 여행 계획이 주어졌을 때, 모든 도시를 순서대로 방문할 수 있는가?를 판단하는 문

난이도 : 골드 2유형 : 유니온 파인드https://www.acmicpc.net/status?user_id=alswns8495&problem_id=1976&from_mine=1어떤 사이트의 친구 관계가 생긴 순서대로 주어졌을 때, 두 사람의 친구 네트워크에

난이도 : 골드 4유형 : 유니온 파인드https://www.acmicpc.net/problem/20040사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임

난이도 : 실버 4유형 : 최소 신장 트리https://www.acmicpc.net/problem/9372상근이는 N개국을 여행하기로 마음먹었다. 최대한 적은 종류의 비행기를 타고 국가들을 이동하려고 한다.상근이가 가장 적은 종류의 비행기를 타고 모든 국가들
난이도 : 골드 4 유형 : 최소신장트리 https://www.acmicpc.net/problem/1197 문제 그래프가 주어졌을 때, 그 그래프의 최소 스패닝 트리를 구하는 프로그램을 작성하시오. 최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 부

난이도 : 골드 3유형 : 최소신장트리문제 출처 : https://www.acmicpc.net/problem/4386도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다.
난이도 : 골드 3 유형 : 최소신장트리 (MST) 출처 : https://www.acmicpc.net/problem/1774 문제 황선자씨는 우주신과 교감을 할수 있는 채널러 이다. 하지만 우주신은 하나만 있는 것이 아니기때문에 황선자 씨는 매번 여럿의 우주신과 교감하느라 힘이 든다. 이러던 와중에 새로운 우주신들이 황선자씨를 이용하게 되었다. 하...

난이도 : 골드 4유형 : MST출처 : https://www.acmicpc.net/problem/6497성진이는 한 도시의 시장인데 거지라서 전력난에 끙끙댄다. 그래서 모든 길마다 원래 켜져 있던 가로등 중 일부를 소등하기로 하였다. 길의 가로등을 켜 두면

난이도 : 골드 1유형 : MST출처 : https://www.acmicpc.net/problem/17472이렇게 어떤 나라의 지도가 있다. (N \* M)하늘색으로 색칠 된 곳이 땅, 아닌 곳이 바다라고 한다.땅이 연결된 곳 한 덩이를 섬이라고 한다.이 섬들

난이도 : 브론즈 3유형 : 해 구성하기출처 : https://www.acmicpc.net/problem/20944정수 N이 주어질 때, 길이가 N인 팰린드롬이면서 수미상관인 문자열을 출력하는 문제.정답이 여러 개일 수 있으며, 아무거나 하나만 출력하면 된다.

난이도 : 실버 4유형 : 해 구하기출처: https://www.acmicpc.net/problem/306181부터 N까지로 만든 순열 중에서, 모든 연속 부분수열의 합들을 전부 더한 값을 그 순열의 점수(score) 라고 정의한다.이 점수가 최대가 되도록 하

난이도 : 실버 4유형 : 해 구성하기출처 : https://www.acmicpc.net/problem/28065길이 N의 수열 A를 1..N의 서로 다른 정수로 구성하되,인접 차들의 절댓값 |A\[i+1]-A\[i]| (i=1..N-1) 이 모두 서로 다르고

백준에서 ‘단계별로 풀기’를 통해 기본기를 쌓아왔는데, 이제는 주요 유형의 기본 문제들은 대부분 풀어본 것 같다. 그렇지만 아직 기초가 부족하다고 느껴서, 이번에는 프로그래머스의 ‘코딩테스트 고득점 Kit’를 풀어보려 한다. 기초를 다시 다지는 동시에 실제 코딩테스트와

bfs는 꽤나 익숙하지만아직은 입출력이 없는 프로그래머스형식의 문제에서의 표현이 아직 익숙하지 않아 선뜻 나오지 않고 있다.

전형적인 격자 BFS 최단거리 문제이다.1은 이동 가능, 0은 벽. 시작은 (0,0), 도착은 (n-1,m-1)이고, 상하좌우만 이동 가능하다.핵심은 큐로 BFS 하면서 방문과 거리(dist)를 동시에 관리하는 것이다.이런 격자 BFS 문제의 핵심큐에 좌표를 넣고, 방
난이도 : 레벨 3유형 : BFS출처 : https://school.programmers.co.kr/learn/courses/30/lessons/43163두개의 문자열 begin, target 그리고 단어의 집합(배열) words를 준다.begin에서 targ

난이도 : level 1유형 : 그리디출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42862전체 학생 수 n 체육복을 도난당한 학생들의 번호 배열 lost 여벌 체육복이 있는 학생들의 번호

난이도 : 레벨 2유형 : 그리디출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42860이름을 A로 가득한 상태에서 시작해서, 목표 문자열 name을 만든다.커서는 처음에 0번 인덱스에 있다.두

난이도 : 레벨 3유형 : DFS출처 : https://school.programmers.co.kr/learn/courses/30/lessons/43164주어진 항공권 (tickets 배열)을 이용하여 여행 경로(배열)를 짜려고 한다.항상 시작 공항은 "ICN

난이도 : level 1유형 : 완전 탐색출처 : https://school.programmers.co.kr/learn/courses/30/lessons/86491모든 명함들을 수납할 수 있는 지갑 넓이의 최소값을 구해야 한다.명함 size들을 2차원 배열로

난이도 : level 1유형 : 완전 탐색출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42840answer에 문제의 답 배열을 입력받고,1,2,3 번 사람들 중 누가 제일 많이 맞혔는지 ret

난이도 : level 2유형 : 완전탐색출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42842테두리 바로 안쪽 한줄만 갈색 이고, 나머지 안쪽 싹다 노란색을 가지는 카펫에brown, yello

난이도 : level 1유형 : 해시-키출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42576participant과 comepetition 이라는 문자열 배열을 입력 받는다.두 배열을 비교하여

난이도 : level 2유형 : 키-해시출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42577phone_book 배열을 입력 받는다. 배열안에는 숫자형태의 문자열들이 들어있다.만약 어떤 번호가

난이도 : level 2유형 : 해시-키출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42578clothes라는 2차원 배열에 의상의 이름, 의상의 종류 순으로 입력을 받습니다. 저는 편의상 이

난이도 : level 1유형 : 스택출처 : https://school.programmers.co.kr/learn/courses/30/lessons/129060부터 9로 이루어져있는 배열 arr 를 입력 받습니다.1,1,3,3,0,0,1,1 을 입력받았다면우리
난이도 : level 2유형 : 정렬출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42747이 문제에선 citations, 즉 인용 횟수를 담은 배열을 입력받는다.배열의 길이는 과학자가 발표한

난이도 : Level 2유형 : 스택/큐출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42586배열 progresses : 먼저 배포되어야 하는 순서대로 작업의 진도(진행률)이 적혀져있는 배열,

https://school.programmers.co.kr/learn/courses/30/lessons/12909문자열 s가 주어진다.괄호가 올바르게 짝 지어지면 true, 그렇지 않으면 false를 반환해야한다.올바르게 짝 지어졌다는 것은,스타트를 '(' 로

숫자 N과 target인 number 만 주어졌을 때N을 이용한 사칙연산을 통해 target인 number를 만드는데,거기다가 표현할 수 있는 방법중 N사용 횟수의 최솟값을 return 하라니아주 신박한 문제라고 느껴졌다.ex)12 = 5 + 5 + (5 / 5) +

dungeons 라는 2차원 배열에 요소가 두개 들어있는 배열들이 들어져있다.인덱스 0번째 요소는 '최소 필요 피로도', 즉 던전에 들어가기 위한 입장 조건이다. 1번째 요소는 '소모 피로도', 즉 던전에 들어갔다 나왔을 때 소모되는 피로도의 양이다.그리고 k 매개변수

문자열로 된 숫자 number에서 정확히 k개의 숫자를 제거해 만들 수 있는 가장 큰 수를 반환하는 문제예시 1에서 number = "1924", k = 2→ "94"순서는 유지해야 하고, 숫자 제거는 임의의 위치에서 가능하다.왼쪽부터 보면서, 더 큰 수를 만들 수 있

https://school.programmers.co.kr/learn/courses/30/lessons/181188targets 배열에 미사일의 구간이 담겨져 있다.그림에 노란색 부분이 미사일의 구간들이고우리는 미사일을 저지하는 요격 미사일을 발사해서 저지해야

https://school.programmers.co.kr/learn/courses/30/lessons/84512조금 특별한 사전이 있다고 한다. 이 사전에는 알파멧 모음 'A','E','I','O','U' 으로만 적혀있고, 사전순으로 정렬되어있다고 한다.첫

문제에서 제시한 규칙대로 흐름을 구현하면 된다.프로세스들이 우선순위를 가진 채 대기열에 존재한다.대기열 맨 앞 프로세스가 현재 대기열 중 최댓값이 아니면 다시 큐에 넣는다.(큐의 맨 뒤로 보낸다.)그렇지 않으면 해당 프로세스를 실행하고, 내가 궁금한 프로세스(locat

https://school.programmers.co.kr/learn/courses/30/lessons/43105정수들로 이루어진 삼각형이 있다.맨 위 꼭짓점에서 아래로 내려가는 중 거쳐가는 경로의 정수들의 합이 가장 큰 경우를 찾으려고 하는 문제이다.이때 아

https://school.programmers.co.kr/learn/courses/30/lessons/1843입력값으로 문자열 형태의 숫자와 사칙연산 기호들을 입력받는다.이 문자열들을 순서바꿔가며 연산을 했을 때 나올 수 있는 결괏값들 중 최대값을 retur

bridge_length(다리 길이), weight(다리가 버틸 수 있는 총 하중), truck_weights(대기 중인 트럭들의 무게)가 주어졌을 때, 트럭들이 전부 다리를 건너는 데 걸리는 시간을 return하는 문제다.핵심 규칙부터 정리하자면:시간은 입력으로 주어

초 단위로 기록된 주식가격 배열 prices가 주어진다.각 시점 i에서 가격이 떨어지지 않은 기간(초) 을 구해 배열로 반환하면 된다.예를 들어 prices = 1, 2, 3, 2, 3 이면,0초(가격 1)는 이후 끝까지 한 번도 떨어지지 않으므로 4초 유지 → 41초

https://www.acmicpc.net/problem/9935예제로 흐름을 파악해보자.예제 입력 1에서 문자열은 "mirkovC4nizCC44", 폭발 문자열은 "C4", 출력은 "mirkovniz" 이다.이건 총 두 번의 폭발이 일어난 결과다.1) mir

https://www.acmicpc.net/problem/17298"오큰수 NGE(i)" 라는 것을 구해야하는 문제이다.오큰수가 없는 경우는 -1을 출력한다."오큰수 NGE(i)"란 문제에서 정의하길 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는

https://www.acmicpc.net/problem/17299어제 푼 오큰수에 이어 오늘은 오등큰수 문제다.길이 N의 수열 A가 주어지고, F(x)를 “수열 A에서 값 x가 등장한 횟수(빈도)”라고 할 때,Ai의 오등큰수(NGF) = Ai의 오른쪽에 있으

https://www.acmicpc.net/problem/1725가로 폭이 1로 동일한 막대그래프 높이 N개가 주어진다.이때 히스토그램 안에서 만들 수 있는 가장 넓은 직사각형의 넓이를 구하면 된다.처음엔 이렇게 생각했다:각 시작점에서 오른쪽으로만 가면서 “시

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/258712문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/25

문제 출처 : https://www.acmicpc.net/problem/3015N명이 한 줄로 서 있고, 서로 볼 수 있는 쌍의 수를 구하는 문제.예시 입력7 2412251 정답은 10. 직관적으로 세어보면,서로 바로 인접한 사람들은 무조건 서로 볼 수 있

단조 스택에 대해 알아보겠다.단조 스택에 '단조'는 단조롭다 할때의 단조이다.수학에서 단조(monotone)란, 수열이나 함수가 한 방향으로만 변하는 걸 말한다.즉, 계속 증가만 하거나, 계속 감소만 하는 성질을 뜻한다.그렇다면 단조 스택은?스택에 저장된 값들이 단조

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/340199지갑과 지폐의 크기가 배열로 주어진다.ex 1)wallet = 30, 15, bill = 26,17이 bill이 지갑에 들어가지 않는
https://school.programmers.co.kr/learn/courses/30/lessons/178871달리기 경주를 하는 player들의 이름이 담긴 배열 players 와해설진들이 달리기 선수들이 추월할 때 부르는 이름이 담긴 배열 calling

문제 링크 : https://www.acmicpc.net/problem/13975파일을 합치는데 최소 비용을 계산하는 프로그램을 구현해야 한다.만약 파일이 4, 3, 3, 5 있다면(4+3)+(3+5) 로 합칠 수 있다. 이 경우에 비용은 (4+3) + (3+

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42579장르 별로 노래를 두 개씩 모아서 베스트 앨범을 만들려고 한다.노래 두개를 뽑는 규칙은 다음과 같다.1\. 속한 노래가 많이 재생된

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42626 scoville 이라는 숫자가 들어있는 배열을 입력 받고,스코빌 지수 K를 입력받는다.Leo라는 사람은 scovile 안에 숫자를

https://school.programmers.co.kr/learn/courses/30/lessons/1845문제가 조금 길어서 파악하기 어려울 수 있는데 핵심 요지는nums 배열이 주어진다. 이떄 nums의 길이는 항상 짝수이다. 즉 2로 나누어 떨어지는데

https://school.programmers.co.kr/learn/courses/30/lessons/42628operations 라는 배열이 주어진다. \["I -45", "I 653", "D 1", "I -642", "I 45", "I 97", "D 1"

https://school.programmers.co.kr/learn/courses/30/lessons/42746numbers 라는 0또는 양의 점수가 담긴 배열을 입력받는다.이 배열안에 숫자들의 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어

https://school.programmers.co.kr/learn/courses/30/lessons/42748배열 array, \[i,j,k] 를 입력 받았을 때,배열을 i번째부터 j번째까지 자르고 오름차순으로 정렬한 뒤, k번째 수를 구하는 문제입니다.입

https://school.programmers.co.kr/learn/courses/30/lessons/42885사람들의 몸무게가 숫자형으로 주어진 people 배열과, 구명보트의 무게제한 limit 가 숫자형으로 주어진다.구명보트에는 최대 2인까지만 탈 수

https://school.programmers.co.kr/learn/courses/30/lessons/118667숫자 원소가 들어있는 큐가 두개 주어졌을 때,popleft(), push() 연산을 이용하여 두 큐의 원소의 합을 동일하게 만드는 작업의 최소횟수

https://school.programmers.co.kr/learn/courses/30/lessons/86971wires 라는 2차원 배열을 입력받는다.\[1,2,2,3] 이라면 1번 노드와 2번 노드가, 2번 노드와 3번 노드가 서로 연결되어 있다는 뜻이다

https://school.programmers.co.kr/learn/courses/30/lessons/42839numbers라는 배열에 0~9 숫자가 띄어쓰기 없이 이어져 문자열로 주어져 있다.이를 하나씩 순서를 바꿔 조합했을 때 만들 수 있는 '소수의 개수

https://school.programmers.co.kr/learn/courses/30/lessons/42883문자열 형식으로 숫자가 주어진 number와 제거할 숫자의 개수 k를 입력받았을 때, number에서 k 개의 수를 제거했을 때 만들 수 있는 수

https://school.programmers.co.kr/learn/courses/30/lessons/43238입국심사를 기다리는 사람 수 n,각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받

https://school.programmers.co.kr/learn/courses/30/lessons/258711도넛 모양 그래프에 대해 설명하고 있다.도넛 모양 그래프는 n개의 정점, n개의 간선. 즉 정점의 수와 간선의 수가 일치하는 특징을 가진다.그리고

https://school.programmers.co.kr/learn/courses/30/lessons/258709

https://school.programmers.co.kr/learn/courses/30/lessons/258707이 문제는 규칙이 좀 많아 예시를 보며 흐름을 파악해보겠다.coin과 cards가 있는데 coin을 4, cards 를 3,6,7,2,1,10,5

https://school.programmers.co.kr/learn/courses/30/lessons/258705입출력 예 1번째는 위 예시에 나와있으니2번째 입출력 예시n = 2, tops \[0,1] 를 그림을 그려보겠다.1\. 2n+1 = 5 개의 정

https://www.acmicpc.net/problem/2166다각형을 이루는 꼭짓점들의 좌표가 주어졌을때, 그 다각형의 넓이를 구하는,문제 자체는 간단한 문제이다.이 문제를 쉽게 풀기 위해서는 학생때 어렴풋이 배웠었던 것 같은신발끈(슈레이스) 공식 이 필요

오늘 날짜가 "YYYY.MM.DD" 형태로 주어지는 문자열 today와,약관 종류와 유효기간의 형태가 공백으로 구분되어 있는 문자열들을 담은 리스트 'terms',날짜와 약관 종류가 공백으로 구분되어 있는 문자열들을 담은 리스트 'privacies'가 주어진다.그랬을

https://school.programmers.co.kr/learn/courses/30/lessons/150368카카오톡에서 이모티콘 할인행사를 한다.우선순위 1. 이모티콘 플러스 서비스 가입자를 최대한 늘린다.우선순위 2. 이모티콘 판매액을 최대한 늘린다.

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/92334사용자들이 있고 서로 신고가 가능하다.2회 신고받으면 이용 정지된다.그리고 누군가가 정지되었다면 그 사람을 신고한 사람에게 메일이 간

https://school.programmers.co.kr/learn/courses/30/lessons/92335양의 정수 n을 k진수로 바꾸었을 때, 조건에 맞는 소수가 몇개인지 return해야 한다.이때 소수는 k진법이 아닌 10진법으로 봤을 때의 소수이다

문제 링크 :https://school.programmers.co.kr/learn/courses/30/lessons/92341주차 요금을 계산하려고 한다.표의 흐름을 따라가보면기본 시간은 180분, 기본요금 5,000원그리고 180분이 지난 시간부터 10분마다

https://school.programmers.co.kr/learn/courses/30/lessons/92342양궁대회를 한다고 한다.라이언이 전 챔피언도전자가 어피치이다.도전자인 어피치에게 어드밴티지를 준다고 한다.어피치가 먼저 n발 쏘고, 라이언이 그다음

https://school.programmers.co.kr/learn/courses/30/lessons/178871players: 현재 등수 순서대로 선수 이름 배열이 주어지고,callings: 심판이 호명한 선수 이름 배열. 한 번 호명되면 그 선수는 바로

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/150367이진 트리를 수로 표현한다고 한다.이렇게 생긴 이진트리가 있다.리프노드가 없는 노드에 더미 노드를 점선으로 추가했다.그리고 왼쪽 아
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/340198 문제 파악 지민이가 깔 수 있는 돗자리를 가장 크게 깔려고 한다. 종류가 5,3,2 세종류가 있고 가장 크게 깔 수 있는 건 3x3 이

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/150366문제가 길다.표의 크기 50 x 50 고정셀 비어있음, 문자열 값 가질 수 있음, 다른 셀과 병합될 수 있음명령어 기능 구현하려고

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/150365n x m 격자 미로에서 (x,y) -> (r,c) 로 이동해야 한다고 한다.격자 바깥으로 나갈 수 없고,딱 k 만큼 이동해야하며,

문제 출처 : https://www.acmicpc.net/problem/10870n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성해야 한다.피보나치 수는 0과 1로 시작하며그 다음 수부터는 그 전전 수와 전 수의 합으로 이루어진 수이다.즉f(n)

문제 출처 : https://www.acmicpc.net/problem/25501문자열이 주어졌을 때,1\. 팰린드롬인지 판별하고2\. 재귀함수가 몇 번 호출되었는지 함께 출력하는 문제다.팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열
문제 출처 : https://www.acmicpc.net/problem/2447N은 3의 거듭제곱꼴이다.N = 3N = 9 N = 3일때의 모양이 3x3 에 가운데만 없는 꼴이다.별을 다 채우고 가운데를 파내는 방식으로 풀 수 있다.저번에는 그렇게 풀었는데

문제 출처 : https://www.acmicpc.net/problem/15649이 문제는 백트래킹 유형의 문제이다.백트래킹이란정답이 될 수 있는 모든 경우의 수를 만들어보다가,가능하지 않은 길은 미리 되돌아오는 알고리즘 이다.1부터 N까지 자연수 중에서 중복

문제 출처 : https://www.acmicpc.net/problem/15650어제 풀었던 N과 M (1) 문제에 이어 두번째 백트래킹 문제이다.문제는 거의 동일하되, 여기서는 1 2 와 2 1 를 같은 수열로 본다.중복을 제거해야하니 set() 자료형을

문제 출처 : https://www.acmicpc.net/problem/15651N과 M (1) , N과 M (2) 에 이어 N과 M 3 이다.그러나 이 문제가 (1) 이 되어도 될 정도로 가장 기본적인 문제이다.중복, 순서 다 상관없이 그저 N중 M개를 골

문제 출처 : https://www.acmicpc.net/problem/15652N과 M 문제 (1), (2), (3) 에 이어 (4)이다.마찬가지로 N과 M이 주어지고1부터 N까지 자연수 중 M개를 고른 수열을 출력해야 하는데 (4) 문제에서는 같은 수 여러

문제 출처 : https://www.acmicpc.net/problem/9663체스는 잘 모르지만 이 문제를 풀기 위해서는 퀸의 이동 방식에 대해 알아야 한다.퀸은 가로, 세로, 대각선 어느 방향으로든 몇 칸이든 이동 가능하다.즉,같은 행(row) 에 있으면

문제 출처 : https://www.acmicpc.net/problem/2580게임 시작 전 스도쿠 판에 쓰여 있는 숫자들의 정보가 주어질 때 모든 빈 칸이 채워진 최종 모습을 출력하는 프로그램을 작성해야 한다.입력으로 이렇게 공백을 기준으로 9x9의 스도쿠

문제 출처 : https://www.acmicpc.net/problem/14888nums의 순서는 바꿀 수 없지만 operator를 잘 활용해서 만들 수 있는 결과의 최댓값과 최솟값을 각각 print() 해야 한다.수의 개수가 최대 11그렇다면 연산자가 들어갈

문제 출처: https://www.acmicpc.net/problem/14889N명의 사람을 두 팀으로 나누었을 때,각 팀의 능력치 차이가 최소가 되도록 하는 값을 구하는 문제다.팀의 능력치는 팀에 속한 모든 두 사람 (i, j)에 대해Si + Sj의 합으로

https://www.acmicpc.net/problem/15686NxN 도시가 있다. 왼쪽 위부터 (1,1) ... (N,N)각 칸은 빈 칸 (0), 집 (1), 치킨 집(2) 중 하나이다.치킨 거리 : 집과 가장 가까운 치킨집 사이의 거리각각의 집은 치킨

문제 출처 : https://www.acmicpc.net/problem/24416피보나치 수열에 대해 재귀호출 방식과 dp방식으로 각각 풀어보고 각 함수 호출이 몇번씩 일어나는지 파악하며 출력하는 문제이다.무작정 문제에서 제시한 수도코드를 통해 코드를 구현하고

주어진 수도코드 w(a,b,c) 를 파이썬 코드로 구현해하는 문제이다.그러나 그냥 수도코드 그대로 그저 완전탐색인 방법으로 파이썬 코드로 옮기게 되면 시간복잡도가 O(3^{x+y+z}) 이므로 3^60 = 9^30 이다python은 보통 10⁷ 정도까지 시간초과가 나

문제 출처 : https://www.acmicpc.net/problem/1904타일의 종류는 두 가지다.1 (길이 1)00 (길이 2)길이 N짜리 1차원 벽을 이 두 타일로 가득 채우는 방법의 수를 구하는 문제다.단, 답은 15746으로 나눈 나머지를 출력해야

문제 출처 : https://www.acmicpc.net/problem/9461이 문제는 규칙을 찾기만 하면 매우 간단한 DP 문제다. 처음에는 점화식이 바로 보이지 않아서 직접 수열을 하나씩 적어보며 규칙을 만들어 갔다.처음 몇 항을 직접 계산해보면 다음과

문제 출처 : https://www.acmicpc.net/problem/1912정수 수열이 하나 주어진다.이 중에서 연속된 몇 개의 수를 골라 합을 구할 때, 만들 수 있는 최댓값을 구하는 문제다.길이 N (1 ≤ N ≤ 100,000)수열의 원소는 음수, 양

문제 출처 : https://www.acmicpc.net/problem/1149직관적으로 그리디 전략 "매 집에서 가장 싼 색 고르자."를 생각할 수 있다. 그러나문제는 이 선택이 뒤에서 더 큰 비용을 강제로 만들 수 있다는 점이다.예를 들어 앞에서 빨강이 싸

문제 출처 : https://www.acmicpc.net/problem/1932dp문제임을 알고 풀었기에.. 바로 dp 점화식을 찾아보았다.맨 위부터 아래로 내려오며 경로에 있는 수의 합을 출력하는데 가장 큰 합을 출력해야 한다.왼쪽 아래로 내려오거나, 2.

문제 출처 : https://www.acmicpc.net/problem/2579계단을 올라가며 방문한 계단에 모든 값들을 더했을 때 값이 최대여야 한다.단 올라갈 때 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 연속된 세 개의 계단을

포도주는 3잔 연속으로 마실 수 없다.마지막 잔을 반드시 마실 필요는 없다.목표: 0번 잔부터 i번 잔까지 고려했을 때 마실 수 있는 최대 양을 구하는 것.dp\[i] = i번째 포도주까지 고려했을 때 마실 수 있는 최대 양가능한 선택은 3가지:1) i번째 잔을 안 마

문제 출처 : https://www.acmicpc.net/problem/11053수열에서 가장 긴 증가하는 부분 수열(LIS, Longest Increasing Subsequence)의 길이를 구하는 문제다. dp\[i]는 i번째 수를 마지막으로 하는 LIS

문제 출처 : https://www.acmicpc.net/problem/11054어제 포스팅했던 백준 11053번 | 실버 2 | 가장 긴 증가하는 부분 수열 | Python의 다음 문제이다.난이도가 실버 2에서 바로 골드 4로 올라서였을까 많이 안붙어보고 쫄

문제출처 : https://www.acmicpc.net/problem/2775“k층 n호에는 몇 명이 사는가?”를 출력하는 문제이다.0층 i호에는 i명이 산다.dp0 = ik층 n호는 아래층 1호부터 n호까지 사람 수의 합이다.dpk = dpk + dpk +

문제 출처 : https://www.acmicpc.net/problem/2565두 전봇대가 있고, 이 사이에 있는 전깃줄들이 교차되지 않게 없애야 할때, 없애야 하는 최소 개수를 출력해야 한다.그리고 이 문제를 dp로 풀고자 한다.어떻게 풀 수 있을까앞서 제시

문제출처 : https://www.acmicpc.net/problem/9251최장 공통 부분 수열, LCS의 길이를 출력해야 한다.LCS란, 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것ACAYKPCAPCAK의 LCS는 ACAK이다.어

문제 출처 : https://www.acmicpc.net/problem/1676N! (팩토리얼)을 계산했을 때, 결과의 끝에 연속으로 붙는 0의 개수를 구하는 문제다.10! = 3628800 → 뒤에 0이 2개하지만 팩토리얼 값 자체는 너무 커져서 직접 계산하

문제 출처 : https://www.acmicpc.net/problem/12865물건 개수 N (1 ≤ N ≤ 100)각 물건:무게 W\[i] (1 ≤ Wi ≤ 100,000)가치 V\[i] (1 ≤ Vi ≤ 1,000)배낭이 버틸 수 있는 최대 무게 K (1

문제 출처 : https://www.acmicpc.net/problem/11047동전 종류의 개수 N, 목표 금액 K그리고 동전의 종류들이 주어졌을 때최소 동전의 개수로 목표 금액을 만들어야 하는 문제이다.어떻게 풀 수 있을까?문제 조건을 잘 살펴보면 둘째 줄

문제 출처 : https://www.acmicpc.net/problem/1931회의 개수 N (1 ≤ N ≤ 100,000)각 회의는시작 시간 s끝나는 시간 e한 회의가 끝나는 동시에 다음 회의 시작 가능회의실은 하나뿐회의 시간이 겹치지 않게 회의를 최대 몇

문제 출처 : https://www.acmicpc.net/problem/11399문제가 길지만 요하는 것은 간단하다.사람의 수 N 이 주어지고, 각 사람이 돈을 뽑는데 걸리는 시간 P1,P2..Pn 이 주어졌을 때, 모든 사람들이 다 돈을 뽑았을 때, 각자 걸

문제 출처 : https://www.acmicpc.net/step/20정사각형 색종이가 있고, 각 칸은0 → 하얀색1 → 파란색으로 색칠되어 있다.목표는 다음이다.“더 이상 쪼갤 수 없을 때까지 색종이를 4등분하며 잘랐을 때, 최종적으로 남는 하얀색/파란색 색
문제 출처 : https://www.acmicpc.net/problem/1992 문제 파악 사각형을 4등분하여 왼쪽 위, 2. 오른쪽 위, 3. 왼쪽 아래, 4. 오른쪽 아래 이렇게 이런식으로 분할하여 만약 같다면 압축할 수 있고 이런 꼴을 쿼드트리라고 하나보다.

문제 출처 : https://www.acmicpc.net/problem/1780색종이 만들기, 쿼드 트리 문제에 이어 세번째 분할 정복 문제이다.그 전 문제들은 2등분씩하여 분할하는 문제였다면 이 문제는 3등분해야 한다.그 전 문제는 half = size //

문제 출처 : https://www.acmicpc.net/problem/1629(A^B) % C 를 분할정복을 이용하여 빠르게 계산해야 하는 문제.예제 입력 1을 보자.10^11 % 12 → 정석대로 10^11 을 계산하면 너무 크다.하지만 10^11 은 다음

문제 출처 : https://www.acmicpc.net/problem/11401우리가 구해야 하는 값은 이항계수 B(N,K) N! / ( K! \* (N-K)! ) 이다.문제는 N의 범위가 최대 4,000,000이라는 점.팩토리얼 값은 너무 커진다. 모듈
문제 출처 : https://www.acmicpc.net/problem/1920 문제 파악 문제 자체는 간단하다. N_list = [4,1,5,2,3] M_list = [1,3,7,9,5] 두개의 정수배열을 입력받고, Mlist의 요소들이 Nlist에 존재하

문제 출처 : https://www.acmicpc.net/problem/10816가지고 있는 숫자 카드 개수 N, 요소들 N_list가 입력되고몇개 가지고 있는 지 파악해야 할 수의 개수 M, 요소들 M_list 가 입력되었을 때,각각 M개의 요소들이 몇개 있

문제 출처 : https://www.acmicpc.net/problem/1654K : 이미 가지고 있는 랜선의 개수 N : 필요한 랜선의 개수 K_list : 각 랜선의 길이K_list 에 있는 랜선을 적절히 잘라 N개 이상의 랜선을 만들어야 한다.이때 만

문제 출처 : https://www.acmicpc.net/problem/2805나무의 개수 N집에 가져가야 하는 최소 나무 길이 M (→ 여기선 변수 이름 target)각 나무의 높이가 주어진다.우린 절단기 높이 H 를 정해서각 나무에서 max(나무높이 - H

문제 출처 : https://www.acmicpc.net/problem/2110집의 개수 N (2 ≤ N ≤ 200,000), 각 집의 좌표 xi (0 ≤ xi ≤ 1,000,000,000) 를 입력받고,설치할 공유기의 개수 C (2 ≤ C ≤ N) 를 입력받

문제 출처 : https://www.acmicpc.net/problem/1300N = 3이라고 가정하면,A는 N×N 크기의 배열이고,원소는 다음과 같이 정의된다.인덱스는 1부터 시작A\[i]\[j] = i × j즉, N = 3일 때,1행: 1×1, 1×2, 1

문제 출처 : https://www.acmicpc.net/problem/12015수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성해야 한다.가장 긴 증가하는 부분 수열 이라 함은수열 A = {10, 20, 10, 30, 20, 50

문제 출처 : https://www.acmicpc.net/problem/11279최대 힙 이라는 것을 이용하랜다.최대 힙이란,항상 가장 큰 값이 맨 위(root)에 있도록 유지되는 완전 이진트리 기반 자료구조다.아무리 많은 값이 들어있어도 가장 큰 값을 O(l

문제 출처 : https://www.acmicpc.net/problem/11286이전 글(11279 최대 힙)에서 최소 힙/최대 힙 개념과 heapq 사용법을 학습했다.이번 문제는 형태가 조금 다르다.절댓값이 가장 작은 값을 꺼내야 하고,절댓값이 같다면 실제

문제는 N×N 개의 수가 주어질 때, N번째로 큰 수를 구하는 것이다.N의 최대값은 1500이므로 전체 원소 수는 최대 2,250,000개다.가장 먼저 든 생각은 이거였다.모든 값을 max-heap에 넣고N번 pop마지막에 나온 값이 정답하지만 이 방식은:N²개의 값을

문제 출처 : https://www.acmicpc.net/problem/2696난이도 : 골드 2숫자가 M개 주어질 때, 1번째, 3번째, 5번째… (즉 지금까지 읽은 개수가 홀수일 때) 마다 “지금까지의 중앙값”을 출력해야 한다.1개 읽으면 그 값이 중앙값3

문제 출처 : https://www.acmicpc.net/problem/24479난이도 : 실버 2N개의 노드, M개의 엣지, 그리고 방향과 가중치가 없는 그래프가 주어진다.정점 R에서 시작하여 깊이 우선 탐색 으로 노드를 방문할 경우 노드의 방문 순서를 출력

문제출처 : https://www.acmicpc.net/problem/24444난이도 : 실버 2알고리즘 수업 - 깊이 우선 탐색 1 문제에 이어서 너비 우선 탐색 문제이다.정점의 수 N, 간선의 수 M, 시작 정점 R과 간선 정보 u,v(u->v) 를 입력받

난이도 : 골드 2유형 : 위상정렬https://www.acmicpc.net/problem/2252방향 그래프(DAG: Directed Acyclic Graph)에서 선행 관계를 지켜 노드를 정렬하는 알고리즘.즉, 어떤 일들이 주어졌을 때 선행 조건이 있는 작

문제 출처 : https://www.acmicpc.net/problem/2606난이도 : 실버 3그래프와 간선 정보들이 주어졌을 때, 1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력해야 하는 문제이다.

문제 출처 : https://www.acmicpc.net/problem/1260난이도 : 실버 2DFS와 BFS를 한번에 써볼 수 있는 문제이다.무방향 인접리스트 그래프를 입력을 받고DFS,BFS 에 대한 visited, order 배열을 따로 입력받은 후 D

문제 출처 : https://www.acmicpc.net/problem/2667난이도 : 실버 1

문제 출처 : https://www.acmicpc.net/problem/1012난이도 : 실버 2배추가 군데군데 심어져 있고, 상/하/좌/우로 인접한 배추들은 한 덩어리(군집)로 본다.배추흰지렁이 1마리가 어떤 배추에 살고 있으면 인접한 배추들로 이동 가능하니

문제 출처 : https://www.acmicpc.net/problem/2178난이도 : 실버 1N x M 미로가 주어진다.1 은 이동 가능, 0 은 이동 불가능.(0,0)에서 출발해서 (N-1, M-1)까지 도착할 때지나야 하는 칸 수의 최소값(최단거리) 을

문제 출처 : https://www.acmicpc.net/problem/1697난이도 : 실버 1 수빈이는 현재 위치 N에 있고, 동생은 K에 있다.수빈이는 한 번에 아래 3가지 행동 중 하나를 할 수 있다.x -> x - 1x -> x + 1x -> 2 \*

문제 출처 : https://www.acmicpc.net/problem/7562난이도 : 실버 1체스판 위에서 나이트(Knight) 가 이동한다.나이트는 한 번에(±1, ±2) (±2, ±1)총 8가지 방향으로만 이동 가능하다.각 테스트케이스마다체스판 한 변

문제 출처 : https://www.acmicpc.net/problem/7576난이도 : 골드 5토마토 상자에서 1 : 익은 토마토 0 : 안 익은 토마토\-1 : 토마토 없음익은 토마토(1)는 하루가 지나면 상하좌우(4방향)로 인접한 안 익은 토마토(0

문제 출처 : https://www.acmicpc.net/problem/16928난이도 : 골드 5이렇게 생긴 것이 뱀과 사다리 게임이라고 한다. 출처 1번 칸에서 시작해서 100번 칸에 도착해야 한다.한 번에 할 수 있는 행동은 주사위를 1~6 굴려서 앞으

문제 출처 : https://www.acmicpc.net/problem/2206난이도 : 골드 30은 이동 가능, 1은 벽.(0,0)에서 (N-1, M-1)까지 최단 거리로 가야 한다.단, 벽을 딱 1번까지 부술 수 있다.이동은 상/하/좌/우.여기서 핵심은 “

문제 출처 : https://www.acmicpc.net/problem/11724난이도 : 실버 2무방향 그래프가 주어진다.여기서 연결 요소(Connected Component) 의 개수를 구해야 한다.연결 요소 = 서로 도달 가능한 노드들의 “덩어리”그래프

문제 출처: https://www.acmicpc.net/problem/1753난이도 : 골드 4정점 V개, 간선 E개인 방향 그래프가 주어지고, 시작 정점 K에서 출발해서모든 정점까지의 최단거리를 출력하는 문제다.간선 가중치가 자연수(양수) → 음수 없음 V

문제 출처 : https://www.acmicpc.net/problem/1504난이도 : 골드 4정점 1에서 정점 N까지 가는 “최단 경로”를 구하는데, 반드시 v1, v2를 지나야 한다.즉, 가능한 경로는 딱 2가지 경우로 줄어든다.1 -> v1 -> v2

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/43165난이도 : Level 2numbers에 있는 숫자들을 순서대로 보면서, 각 숫자 앞에 +를 붙일지 -를 붙일지 선택한다.모든 선택을

백준 9370번: 미확인 도착지 [Python]

2차원 격자 maps가 주어진다.1 : 이동 가능 (길)0 : 이동 불가능 (벽)좌상단 (1,1)에서 우하단 (n,m)까지 최단거리(칸 수)를 구해서 반환,도착할 수 없다면 -1이 반환되어야 하는 핵심은 간단한 문제이다.가중치가 없고 상하좌우 벡터를 만들어 BFS로 푸

문제 출처 : https://www.acmicpc.net/problem/11657난이도 : 골드 41번 도시(노드) 에서 출발해서 다른 도시(노드)들로 가는 가장 빠른 시간을 구하는 문제라 가볍게 다익스트라 알고리즘을 적용하면 될 것 같다라고 생각했지만 아니다

문제 출처 : https://www.acmicpc.net/problem/30802난이도 : 브론즈 3이 문제는 “웰컴키트”를 나눠주기 위해 필요한 포장(묶음) 수를 계산하는 문제이다.입력은 크게 3줄:N : 참가자 수shirts : 티셔츠 사이즈별 신청자 수

문제 출처 : https://www.acmicpc.net/problem/3273난이도 : 실버 3수열이 하나 주어지고, 그 안에서 서로 다른 두 수의 합이 X가 되는 쌍의 개수를 구하는 문제다.가장 단순하게 생각하면 모든 쌍을 다 확인하는 O(N²) 풀이가 떠

문제 출처 : https://www.acmicpc.net/problem/2470난이도 : 골드 5이 문제의 본질은 배열에서 서로 다른 두 숫자를 골라 합이 0에 가장 가까워지도록 만드는 것이다.그리고 그 합이 가장 0에 가까워졌을 때의 두 숫자 자체를 출력해야

문제 출처 : https://www.acmicpc.net/problem/1806난이도 : 골드 4입력으로 길이 N인 수열이 주어지고,“연속된” 부분 수열(= 구간)을 골라서그 구간의 합이 S(target) 이상인 것들 중가장 짧은 길이를 출력해야 한다.조건을

문제 출처 : https://www.acmicpc.net/problem/1644난이도 : 골드 3문제: N을 ‘연속된 소수들의 합’으로 만들 수 있는 경우의 수를 구해야 한다.(예: 41 = 2+3+5+7+11+13 = 11+13+17 = 41 → 3가지“연속