8803who의 등록된 링크

 8803who로 등록된 네이버 블로그 포스트 수는 144건입니다.

백준|9009번|피보나치 [내부링크]

문제설명 어느 한 정수를 입력받고 피보나치 수들의 합으로 나타내려고 할 때 최소한의 개수의 피보나치 수...

백준|11286번|절댓값 힙 [내부링크]

문제설명 힙을 구현하는데 기존의 힙이 아닌 절댓값을 기준으로 숫자를 정렬하는 힙을 구현하고 입력된 명...

백준|2156번|포도주 시식 [내부링크]

문제설명 수열을 입력받고 그 수열의 수들을 규칙에 따라 합해서 만들 수 있는 최대의 수를 구하는 문제입...

백준|2667번|단지번호붙이기 [내부링크]

문제설명 지도를 입력받고 인접한 주택들끼리를 단지로 묶어서 단지의 개수와 단지별 주택의 개수를 오름차...

백준|14503번|로봇 청소기 [내부링크]

문제설명 현재 방의 구조를 입력받은뒤 로봇청소기의 현재 위치와 현재 방향을 입력받고 로봇청소기가 이 ...

백준|1904번|01타일 [내부링크]

문제설명 1과 00을 이용해서 만들 수 있는 N자리 숫자의 개수를 출력하는 문제입니다. 작동 순서 1. 숫자...

백준|1038번|감소하는 수 [내부링크]

문제설명 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 계속해서 감소하는 수를 감소하는 수라...

백준|11497번|통나무 건너뛰기 [내부링크]

문제설명 수열을 입력받고 그 수열들을 재배치해서 인접한 수들의 차이의 최대값이 가장 작도록 할 때 그 ...

백준|1495번|기타리스트 [내부링크]

문제설명 노래의 개수, 초기 볼륨, 최대 볼륨 그리고 각 노래가 시작할 때 변경할 수 있는 볼륨을 크기를 ...

백준|1074번|Z [내부링크]

문제설명 2N*2N의 2차원 배열을 z모양으로 탐색할 때 특정위치의 원소가 몇번째로 탐색되는지 구하는 문제입니다. 작동 순서 1. 배열의 크기와 몇번째로 탐색되는지 찾을 특정위치를 입력받습니다. 2. 맵 전체로 탐색을 시작합니다. 3. 맵을 4등분했을 때 찾는 행이 중간 아래의 행을 찾을 경우 위쪽 두 부분은 검색을 수행하지않고 두 부분의 원소의 개수를 count에 더해줍니다. 4. 맵을 4등분 했을 때 찾는 열이 중간 이후의 열을 찾을 경우 앞쪽 부분은 검색을 수행하지 않고 그 부분의 원소의 개수를 count에 더해줍니다. 5. 범위를 계속해서 줄여나가면서 한칸씩 나뉘어 졌을 경우 그 부분을 탐색하고 count에 +1을 해줍니다. 6. 범위를 탐.......

백준|1932번|정수 삼각형 [내부링크]

문제설명 정수 삼각형에서 아래에 있는 수들중 하나를 선택해서 내려올 때 선택된 수들의 합에서 최댓값을 출력하는 문제입니다. 작동 순서 1. 삼각형의 크기 n을 입력받습니다. 2. 삼각형의 숫자들을 입력받습니다. 3. 각 위치로 가는 경로의 최대합들을 구합니다.(그 줄의 첫번째 원소거나 마지막 원소인 경우 선택할 수 있는 경우의 수가 하나밖에 없고 아닌 경우 자신에게 올 수 있는 두 경로 중 더 큰 숫자를 선택합니다.) 4. 경로의 최대값을 찾고 그 값을 출력합니다. 소스코드

백준|11052번|카드 구매하기 [내부링크]

문제설명 들어있는 카드의 개수가 다른 카드팩들의 가격을 입력받고 원하는 개수의 카드를 살 수 있는 가장 비싼 가격을 출력하는 문제입니다. 작동 순서 1. 카드팩의 개수를 입력받습니다.(카드팩의 개수는 원하는 카드의 개수입니다.) 2. 카드팩의 가격을 입력받습니다. 3. 카드팩의 가격들을 비교하며 i장의 카드를 사는데 i장이 들어있는 카드팩을 사는것과 i-j장이 들어있는 카드팩과 j장짜리 카드팩을 사는 것이 더 비싼지 비교하고 비싼 값을 가져갑니다. 4. 원하는 개수의 카드를 사는데 필요한 값을 출력합니다. 소스코드

백준|11057번|오르막 수 [내부링크]

문제설명 오르막 수는 수가 오른쪽으로 갈수록 같거나 더 커지는 수를 말합니다. 길이가 N인 오르막 수의 개수를 10007로 나눈 나머지를 출력하는 문제입니다. 작동 순서 1. 길이 N을 입력받습니다. 2. 한자리수의 오르막수 개수를 각각 1개씩으로 설정해줍니다. 3. 오르막수의 개수는 이전 단계에서 자신보다 크거나 같은 숫자들의 오르막 수의 개수들의 총합입니다. 4. 자신이 구할 자릿수의 오르막수의 개수를 모두 합하고 10007로 나눈 나머지를 출력해줍니다. 소스코드

백준|1149번|RGB거리 [내부링크]

문제설명 길가의 집들에 페인트를 칠할 때 2집이 연속으로 같은 색상을 사용하지 않고 칠하려면 최소한 얼마의 비용이 필요한지 출력하는 문제입니다.(각 집마다 색에 따른 비용이 다릅니다.) 작동 순서 1. 집의 개수를 입력받습니다. 2. 각 집별로 페인트칠에 필요한 색깔별 비용을 입력받습니다. 3. 현재 집의 색과 다른 두 색으로 이전 집을 칠하는데 필요한 비용들 중 더 적은 비용을 현재까지의 비용들에 합해줍니다. 4. 마지막 집에 왔을 경우 3가지 색들중 가장 비용이 적은 경우를 저장합니다. 5. 최소한의 비용을 출력합니다. 소스코드 후기 문제를 푸는 것보다 설명하는게 더 어렵네요... 아직 이해가 많이 부족한것 같습니다.

백준|2293번|동전 1 [내부링크]

문제설명 n가지 종류의 동전으로 k원을 만들수 있는 경우의 수를 구하는 문제입니다. 작동 순서 1. 동전 종류의 개수와 만드려는 금액을 입력받습니다. 2. 동전의 종류를 입력받습니다. 3. 금액별로 각 동전으로 만들 수 있는 방식의 수를 더해줍니다.(해당 금액-동전의 금액)을 만들수 있는 방법의 수를 더해줍니다. 4. 원하는 금액을 만들 수 있는 방법의 개수를 출력합니다. 소스코드 후기 문제를 푸는 것 보다 원리를 설명하는게 훨씬 더 어렵네요... 아직은 이해력이 많이 부족한 것 같습니다.

백준|1850번|최대공약수 [내부링크]

문제설명 모든 자리가 1로 이루어진 수 A, B의 자릿수의 길이를 입력받고 두 수의 최대공약수를 출력하는 문제입니다. 작동 순서 1. A와 B의 자릿수의 길이를 입력받습니다, 2. 모든 자리가 1로 이루어진 수 A, B의 최대공약수는 A와 B의 최대공약수만큼 1을 나열한 것과 같으므로 A와 B의 최대공약수를 구합니다. 3. A와 B의 최대공약수만큼 1을 나열합니다. 소스코드

백준|14241번|슬라임 합치기 [내부링크]

문제설명 수열을 입력받고 두 수를 합치면 x*y만큼의 점수를 얻고 합친 두 수는 x+y가 된다고 할 때 얻을 수 있는 가장 큰 점수를 구하는 문제입니다. 작동 순서 1. 수열의 길이를 입력받습니다. 2. 수열을 입력받습니다. 3. 수열을 정렬합니다. 4. 수열을 앞의 수부터 차례대로 합쳐가면서 점수를 더합니다. 5. 최종 점수를 출력합니다. 소스코드

백준|15965번|K번째 소수 [내부링크]

문제설명 k번째 소수를 출력하는 문제입니다. 소스코드

백준|2178번|미로 탐색 [내부링크]

문제설명 미로의 구조를 입력받고 미로의 시작점에서 끝점에 도달하는 최소한의 이동거리를 구하는 문제입니다. 작동 순서 1. 미로의 크기 N,M을 입력받습니다. 2. 미로의 구조를 입력받습니다. 3. 미로를 BFS방식으로 탐색합니다. 4. 인접한 칸이 이동할 수 있는 곳일 경우 그 곳으로 이동하고 count를 +1해줍니다. 5. 마지막 칸에 도달하면 그 칸 까지 이동하는데 걸린 이동거리를 출력합니다. 소스코드 후기

백준|5557번|1학년 [내부링크]

문제설명 수열을 입력받고 마지막 숫자를 제외한 각 숫자들 사이에 +,-를 넣어가면서 항상 0이상 20이하의 숫자가 되고 최종 결과값이 수열의 마지막 수와 같은 경우의 수를 출력하는 문제입니다. 작동 순서 1. 수의 개수를 입력받습니다. 2. 수열을 입력받습니다. 3. 수열의 각자리에서 0이상 20이하의 수를 만들수 있는 방법들의 개수를 구합니다. 4. 계산이 끝나면 최종 결과값들 중 수열의 마지막 수를 만들 수 있는 방법의 개수를 출력합니다. 소스코드

백준|14499번|주사위 굴리기 [내부링크]

문제설명 주사위가 있고 지도가 있을 때 주사위를 지도 위에서 굴려서 맨 윗칸의 숫자들을 순서대로 출력하는 문제입니다. 이때 지도에는 숫자가 쓰여져있고 주사위가 칸을 밟은 경우 주사위의 바닥칸의 숫자를 칸의 숫자로 바꾸고 숫자칸의 숫자는 0으로 바꿉니다. 만약 주사위가 밟은 칸의 수가 0인경우 그 칸의 숫자는 주사위의 바닥칸의 숫자가 됩니다. 작동 순서 1. 맵의 크기와 시작점 그리고 명령의 개수를 입력받습니다. 2. 맵에 적혀있는 숫자를 입력받습니다. 3. 명령의 순서를 입력받습니다. 4. 각 주사위를 굴려가며 해당 칸에 있는 숫자에 맞는 연산을 수행합니다. 5. 주사위를 굴릴 경우 동쪽이나 서쪽으로 이동시 다음 이동시의 동.......

백준|1918번|후위 표기식 [내부링크]

문제설명 일상적으로 사용하는 중위 표기식을 입력받고 그 식을 후위 표기식으로 변환하여 출력하는 문제입니다. 작동 순서 1. 중위 표기식을 입력받습니다. 2. 앞글자부터 확인해가며 해당 글자가 피연산자일 경우 출력합니다. 3. 해당 글자가 "("일 경우 연산자 스택에 추가해줍니다. 4. 해당 글자가 ")"인 경우 그 괄호의 시작점 "("가 나올때까지 연산자들을 출력합니다. 5. 해당 글자가 "+"나 "-"인 경우 "("를 만날 때까지 연산자를 출력하고 "("가 나온경우 그 "("를 다시 연산자 스택에 추가합니다. 그 후 연산자 스택에 해당 연산자를 추가합니다. 6........

백준|2493번|탑 [내부링크]

문제설명 서로 높이가 다른 탑들이 있고 탑들은 자신의 왼쪽편에 있는 탑들 중 자신보다 높이가 높은 탑과 통신한다. 만약 자신보다 높이가 높은 탑들이 여러개있으면 가장 가까운 탑과 통신을 한다. 이때 각 탑은 몇번째 탑과 통신을 하는지 출력하는 문제입니다. 작동 순서 1. 탑들의 개수 N을 입력받습니다. 2. 타워들의 높이를 입력받습니다. 3. 타워들의 개수만큼 반복문을 실행합니다. 4. 자신의 왼쪽에 있는 탑들중 가장 가까운 것부터 높이를 비교하며 자신보다 높이가 높거나 같은 탑이 있는지 확인합니다. 스택의 가장 위에 있는 탑의 높이와 비교하고 자신보다 낮은 경우 그 탑을 스택에서 제거합니다. 5. 자신보다 높이가 높거나 같.......

백준|2636번|치즈 [내부링크]

문제설명 정사각형 모양의 판에 치즈가 있고 치즈의 바깥면은 1초마다 녹는다고 할 때 치즈가 모두 녹는데 걸리는 시간과 모두 녹기 한시간전에 남아있는 조각의 개수를 구하는 문제입니다. 작동 순서 1. 치즈가 들어있는 판의 크기를 입력받는다. 2. 치즈 조각들의 위치를 입력받는다. 3. 0,0부터 시작해서 바깥부분들을 탐색한다. 4. 바깥부분을 탐색하며 바깥부분과 닿은 치즈를 발견하면 그 치즈를 녹이고 치즈 개수를 --하고 임시 큐에 그 위치를 삽입한다. 5. 바깥부분을 탐색하며 치즈가 없는 다른 바깥부분을 발견하면 그 위치에서 다시 근처를 탐색한다. 6. 바깥부분을 모두 탐색하면 임시 큐에 있는 다음 시간에 녹을 치즈들의 위치를.......

백준|14502번|연구소 [내부링크]

문제설명 바이러스가 유출된 연구실에 3개의 벽을 지어서 만들 수 있는 안전공간의 최대 크기를 구하는 문제입니다. 작동 순서 1. 연구실의 크기 N, M을 입력받습니다. 2. 연구실의 구조를 입력받고 바이러스가 유출된 곳과 빈공간을 각각 저장합니다. 3. 빈공간에 벽을 하나씩 세워가며 바이러스를 막을 수 있는 안전공간의 크기를 구합니다. 4. 가장 큰 안전공간의 크기를 출력합니다. 소스코드

백준|14888번|연산자 끼워넣기 [내부링크]

문제설명 N개의 숫자로 이루어진 수열과 수와 수 사이에 끼워넣을 수 있는 연산자 N-1개를 입력받고 수식을 만들었을 때 구할 수 있는 최대값과 최소값을 구하는 문제입니다.(연산은 +, -, X, / 상관하지않고 앞에서부터 수행합니다.) 작동 순서 1. 수열의 개수 N을 입력받습니다. 2. 수열을 입력받습니다. 3. 연산자의 종류별 개수를 입력받습니다. 4. 수열 1번을 기본값으로 두고 2번부터 연산을 시작합니다.(해당 연산의 개수가 남아있으면 해당 연산을 수행) 5. 모든 연산을 끝낸 뒤의 값을 비교해가며 최소값과 최대값을 구합니다. 6. 최소값과 최대값을 출력합니다. 소스코드

자바 스윙을 활용한 간단한 오목 프로그램 [내부링크]

프로그램 설명 자바의 스윙을 활용해서 만들어본 간단한 오목프로그램입니다. 2명이서 플레이하는 게임이고 방식은 기존 오목과 동일합니다. 소스코드 후기 5000자가 넘어가니까 소스코드 창이 입력이 안되서 2개로 분할해서 올려야했네요. 개발을 해본 경험이 거의 없어서 기본적인 기능밖에 구현을 못했는데 다음에 기회가 된다면 좀 더 공부해서 멀티 플레이나 승패 저장등의 기능도 추가해보고 싶습니다.

백준|14890번|경사로 [내부링크]

문제설명 크기가 N*N인 지도에서 다양한 높이의 칸들이 있을 때 경사로를 놓아서 완주할 수 있는 경로가 몇개인지를 출력하는 문제입니다. 경사로를 놓는 규칙 1. 경사로를 놓기 위해서는 같은 높이의 칸이 M개이어져있어야함 2. 경사로를 놓기 위해서는 두 칸의 높이의 차이가 1이어야함 3. 경사로를 놓는 칸은 두 칸중 낮은 칸임 4. 경사로가 놓여있는칸은 다른 경사로를 놓을 수 없음 작동 순서 1. 맵의 크기 N과 경사로를 놓기 위해 필요한 칸의 길이 M을 입력받습니다. 2. 맵의 구조를 입력받습니다. 3. 가로부터 시작하여 세로 방향으로 경로를 확인합니다. 4. 다음칸이 현재칸과 높이가 같은 경우 그대로 통과합니다. 5. 다음칸이 현재칸.......

백준|2638번|치즈 [내부링크]

문제설명 모눈 종이에 치즈가 있고 이 치즈는 4 면중 2면 이상이 외부 공기와 접촉할 때, 1시간만에 녹는다면 치즈가 모두 녹는데 걸리는 시간은 얼마인지를 구하는 문제입니다. 작동 순서 1. 치즈의 크기를 입력받습니다. 2. 치즈의 위치를 입력받습니다. 3. 외부 공기에서부터 탐색을 시작합니다. 4. 외부 공기에서 탐색을 하다가 치즈를 만나면 그 치즈의 한면이 외부 공기와 만난다는 것을 표시해줍니다. 5. 만약 치즈의 2면 이상이 외부 공기와 만날 경우 그 치즈를 이번 시간에 녹는 치즈로 지정합니다. 6. 위 과정을 반복하여 치즈가 모두 녹는데 걸리는 시간이 얼마인지를 측정하고 출력합니다. 소스코드 후기 코드가 굉장히 복잡하고 비.......

백준|1043번|거짓말 [내부링크]

문제설명 지민이는 파티에 가서 이야기를 말할 때, 있는 그대로 진실을 말하거나 엄청나게 과장해서 말한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 몇몇 사람들은 그 이야기의 진실을 알고 있다. 이런 사람들이 파티에 왔을 때는, 지민이는 진실을 이야기할 수 밖에 없다. 어떤 사람이 어떤 파티에서는 진실을 듣고, 다른 파티에서는 과장된 이야기를 들었을 때도 지민이는 거짓말쟁이로 알려지게 된다. 지민이는 이런 일을 모두 피해야 한다. 지민이가 거짓말쟁이로 알려지지 않으면서, 과장된 이야기를 할 수 있는 파티 개수의 최댓값을 구하는 문제입니다. 작동 순서 1. 사람의 수와 파티의 수를 입력받습니다. 2. 진실을 아는.......

백준|1629번|곱셈 [내부링크]

문제설명 자연수 A, B, C를 입력받고 A의 B 제곱을 C로 나눈 나머지를 구하는 문제입니다. 작동 순서 1. 자연수 A, B, C를 입력받습니다. 2. B가 2의 배수일 경우 ((A**(B/2)%C)*(A**(B/2)%C))(분할정복)를 반환합니다. 3. B가 2의 배수가 아닌 경우 ((A**(B/2)%C)*(A**(B/2)%C)*A%C)를 반환합니다. 4. 연산결과를 memo에 저장을 하고 같은 값을 다시 불러와야할 경우 똑같은 계산을 다시 수행하지않고 memo에 저장되어 있는 값을 가져옵니다. 5. 연산을 한 뒤 연산 결과를 출력합니다. 소스코드

백준|14501번|퇴사 [내부링크]

문제설명 상담원으로 일하는 백준이 일정 기간동안 일해서 최대한 벌 수 있는 금액을 구하는 문제입니다. 상담은 1일에서 그 이상이 걸릴 수 있고 다른 상담을 하는 동안에는 새로운 상담을 할수 없습니다. 작동 순서 1. 기간 N을 입력받습니다. 2. 각 상담들의 보수와 기간을 입력받습니다. 3. 그 일을 수행할 수 있는 경우 그 일을 수행하는 것을 큐에 추가합니다. 4. 그 일을 수행할 수 없는 경우 그 일을 무시합니다. 5. 일을 수행할 수 있어도 그 일을 무시하는 경우를 큐에 추가합니다. 6. 모든 일정이 끝나고 얻을 수 있는 최대의 이익을 출력합니다. 소스코드 후기 DP문제인데 BFS로 풀어버렸네요. DP는 아직 너무 어렵게 느껴지는 것 같.......

백준|1912번|연속합 [내부링크]

문제설명 n개의 정수로 이루어진 수열에서 연속된 몇개의 수를 선택해서 만들 수 있는 최대 값을 출력하는 문제입니다.(입력되는 정수의 범위는 -1000에서 1000입니다. 작동 순서 1. 수열의 길이 n을 입력받습니다. 2. 수열을 입력받습니다. 3. 수열의 앞구간이 0보다 크면 수열의 앞구간에 현재 구간을 이어붙이고 0보다 작으면 앞구간을 버리고 현재 구간만 값에 저장합니다. 4. 구간을 구하고 그 구간의 크기가 현재 저장된 최대값보다 크면 그 값을 최대값으로 저장합니다. 5. 모든 연산이 끝나면 최대값을 출력합니다. 소스코드

백준|10844번|쉬운 계단 수 [내부링크]

문제설명 계단 수는 45656처럼 인접한 모든 자리의 차이가 1인 수라고 할 때, 길이가 N인 계단 수의 개수를 구하는 문제입니다.(0으로 시작하는 수는 계단수가 아닙니다.) 작동 순서 1. 길이 N을 입력받습니다. 2. 길이가 i일때 j로 시작하는 계단 수의 개수를 저장하는 이차원배열을 생성해줍니다. 3. 0으로 시작하는 계단 수의 개수는 i-1의 길이의 1로 시작하는 계단 수의 개수와 같습니다. 4. 1부터 8로 시작하는 계단 수의 개수는 i-1의 길이의 n-1과 n+1로 시작하는 계단 수의 개수의 합입니다. 5. 9로 시작하는 계단 수의 개수는 i-1의 길이의 8로 시작하는 계단 수의 개수와 같습니다. 6. 위 연산을 반복해서 수행한뒤 길이 N인 계단수의.......

백준|11053번|가장 긴 증가하는 부분 수열 [내부링크]

문제설명 N개의 수열을 입력받고 그 수들로 만들 수 있는 가장 긴 증가하는 부분 수열의 길이를 구하는 문제입니다. 작동 순서 1. 배열의 길이 N을 입력받습니다. 2. 수열의 수들을 입력받고 저장합니다. 3. 각 수의 앞에 있는 자신보다 작은 숫자들만 포함되어 있고 가장 긴 부분 수열의 길이를 가져와서 거기에 +1을 해서 저장합니다. 4. 연산이 모두 끝나면 저장된 부분수열들의 길이 중 가장 긴 길이를 출력합니다. 소스코드

백준|10026번|적록색약 [내부링크]

문제설명 크기가 N*N인 그리드를 R, G, B로 칠했을 때 일반인이 보는 구역의 개수와 적록색약이 보는 구역의 개수를 출력하는 문제입니다.(일반인이 볼때는 같은 색일때만 같은 구역이고 적록색약이 볼때는 R,G는 같은 구역 B만 다른 구역입니다.) 작동 순서 1. 그리드의 크기 N을 입력받습니다. 2. DFS를 이용하여 맵 전체를 탐색합니다. 인접한 칸이 현재 칸과 색이 같고 방문한적이 없을 경우 방문합니다. 3. 메인함수에서 새롭게 출발한 탐색들의 개수는 일반인이 볼 때의 구역의 개수이므로 출력해줍니다. 4. 적록색약이 볼때의 구역은 DFS에서 R과 G는 같은구역으로 처리해주고 B만 같은 구역으로 처리해주는 것을 제외하면 기존 DFS와 동.......

백준|19941번|햄버거 분배 [내부링크]

문제설명 벤치의 길이와 사람들이 햄버거를 가져올 수 있는 거리 K를 입력받고 햄버거와 사람의 배치를 입력받았을 때 최대 몇명의 사람이 햄버거를 먹을수 있는지 출력하는 문제입니다. 작동 순서 1. 벤치의 길이와 사람들이 햄버거를 가져올 수 있는 N, K를 입력받습니다. 2. 벤치의 사람과 햄버거의 배치를 입력받습니다. 3. 벤치에 있는 것이 사람일 경우 그 사람의 근처를 탐색하고 햄버거가 있을 경우 count를 +1 해주고 그 위치의 햄버거를 먹은 것으로 처리해줍니다.(N으로 변경) 4. 벤치를 모두 탐색한 뒤 count를 출력합니다. 소스코드

백준|3273번|두 수의 합 [내부링크]

문제설명 n개의 서로 다른 양의 정수와 x를 입력받고 두 수를 더했을 때 x가 되는 경우의 수는 몇개인지 구하는 문제입니다. 작동 순서 1. 배열의 개수를 입력받습니다. 2. n개의 서로 다른 양의 정수를 입력받습니다. 3. 배열을 정렬합니다. 4. x를 입력받습니다. 5. 배열을 맨앞에서와 맨뒤에서부터 탐색하고 서로 더합니다. 6. 두 수의 합이 x보다 큰 경우 맨뒤의 포인터를 하나 줄입니다.(앞으로 올수록 숫자가 작아짐) 7. 두 수의 합이 x보다 작은 경우 맨앞의 포인터를 하나 늘입니다.(뒤로 갈수록 숫자가 커짐) 8. 두 수의 합이 x인 경우 맨앞의 포인터는 하나 늘이고 맨뒤의 포인터는 하나 줄입니다. 그리고 count를 ++해줍니다. 9. 모든.......

백준|2346번|풍선 터뜨리기 [내부링크]

문제설명 1번부터 n번까지의 풍선을 1번부터 터트려서 그 안에 나와있는 숫자만큼 이동한뒤에 그 풍선을 터트릴 때 풍선이 터지는 순서를 출력하는 문제입니다. 작동 순서 1. 풍선의 개수를 입력받습니다. 2. deque에 풍선의 번호를 입력합니다. 3. 배열에 풍선 안에 적힌 숫자들을 저장합니다. 4. 풍선을 1번부터 터트린 뒤 그 안에 들어있는 숫자에 따라 deque를 회전시키고 다음 풍선을 터트립니다. 소스코드

백준|11727번|2xN 타일링 2 [내부링크]

문제설명 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 문제입니다. 작동 순서 순서대로 구해보면 n=1일 때 1 n=2일 때 3 n=3일 때 5 n=4일 때 11 n=5일 때 21... 으로 dp[n]=dp[n-1]+dp[n-2]*2인 것을 알수 있습니다. 그리고 이 문제의 답을 출력할 때 10007로 나눈 나머지를 출력해야하므로 계산할 때 10007로 나눈 나머지를 입력해주면 됩니다. 소스코드

백준|16953번|A->B [내부링크]

문제설명 숫자 A와 B를 입력받고 두 가지 연산방식을 사용하여 A를 B로 만들 때 필요한 최소한의 연산횟수를 출력하는 문제입니다. 연산1. A*2 연산2. A의 오른쪽에 1 추가 작동 순서 1. A와 B를 입력받습니다. 2. A에 2를 곱하고 해당 값을 구한 적이 없을 경우 그 값을 구하는데 필요한 연산횟수를 저장합니다. 3. A의 오른쪽에 1을 추가하고 해당 값을 구한 적이 없을 경우 그 값을 구하는데 필요한 연산횟수를 저장합니다. 4. B를 구한적이 있을 경우 그 수를 구하는 연산횟수를 출력하고 구한 적이 없을 경우 -1을 출력합니다. 소스코드

백준|3135번|라디오 [내부링크]

문제설명 라디오의 채널을 한칸씩 이동하거나 저장되어있는 위치로 이동하는 방식이 있을 때 어느한채널에서 다른 원하는 채널로 이동하는데 필요한 동작의 횟수를 출력하는 문제입니다. 작동 순서 1. 현재 채널과 원하는 채널을 입력받습니다. 2. 저장되어있는 채널들을 입력받습니다. 3. 시작채널과 저장되어있는 채널들부터 시작해서 채널을 이동시켜가며 원하는 채널로 이동하는데 필요한 동작의 횟수를 계산합니다. 4. 필요한 동작의 횟수를 출력합니다. 소스코드 후기 다른 분들의 풀이들을 보니 이렇게 푸는 문제가 아니었더군요. 풀긴 풀었으나 더 효율적인 방법을 체득해야 할 것 같습니다.

백준|9613번|GCD 합 [내부링크]

문제설명 수열을 입력받고 그 수열에서 숫자 2개를 뽑아 최대공약수를 구하고 그 합을 구하는 문제입니다. 작동 순서 1. 입력받을 테스트 케이스의 개수를 입력받습니다. 2. 수열의 길이와 숫자들을 입력받습니다. 3. 수열에서 숫자를 2개씩 뽑아서 최대공약수를 구하고 gcdSum에 더해줍니다. 4. gcdSum을 출력합니다. 소스코드

백준|12852번|1로 만들기 2 [내부링크]

문제설명 정수 X에 3으로 나누기, 2로 나누기, 1을 빼기 총 3가지의 연산을 사용하여 1로 만드는 데 필요한 최소한의 연산횟수와 연산과정을 출력하는 문제입니다. 작동 순서 1. 정수 X를 입력받습니다. 2. 정수 X를 연산할수 있는 경우 연산을 수행하고 연산횟수를 현재 연산횟수+1로 대입한 뒤 정수 X에서 연산을 한 숫자의 출처로 정수 X룰 남깁니다. 3. 1을 만드는데 필요한 연산의 횟수를 출력합니다. 4. 1부터 시작해서 출처를 찾아가며 출력합니다. 소스코드 후기 다른 분들의 풀이들과 비교를 해보니 제가 작성한 코드는 너무 비효율적인 코드인것 같습니다. 꾸준히 공부를 계속 해야 할 것 같습니다.

백준|2630번|색종이 만들기 [내부링크]

문제설명 NxN 크기의 배열에 숫자 0과 1이 있을때, 어느 숫자 MxM의 범위의 숫자가 모두 같은 구역의 수를 구하는 문제입니다.(M은 2의 배수와 1 중 하나이고 2*2 범위의 숫자가 모두 같을 경우 그 범위는 더 이상 탐색하지 않습니다.) 작동 순서 1. 배열의 크기 N을 입력받습니다. 2. 배열의 숫자들을 입력받습니다. 3. 배열을 탐색하여 모든 숫자가 1이거나 0인 경우 해당 구역을 숫자가 모두 같은 범위로 인식하고 그에 맞는 값을 반환합니다. 4. 배열을 탐색하였는데 모든 숫자가 같지 않은 경우 해당 배열을 4등분하여 다시 탐색합니다. 5. 모든 탐색이 끝나면 1로 이루어진 범위의 수와 0으로 이루어진 범위의 수를 출력합니다. 소스코드 후.......

백준|1092번|배 [내부링크]

문제설명 배에 상자를 실을 크레인의 개수와 각 크레인마다 들 수 있는 무게, 그리고 옮겨야할 상자들의 개수와 무게를 입력받고 모든 상자를 배에 싣는데 최소한 몇분이 걸리는 지 출력하는 문제입니다,(모든 크레인은 한번에 작동하고 작동시간은 1분입니다.) 작동 순서 1. 크레인의 개수와 들 수 있는 무게를 입력받습니다. 2. 크레인을 무게순으로 정렬합니다. 3. 박스의 개수와 무게를 입력받습니다. 4. 박스를 무게순으로 정렬합니다. 5. 박스를 무거운 것부터 무거운 크레인에 싣습니다. 6. 만약 가장 무거운 상자를 실을 수 있는 경우 그 상자를 싣고 확인해야 할 상자의 개수를 -1해줍니다. 7. 박스를 크레인에 실을 수 없는 경우 그 다.......

백준|3190번|뱀 [내부링크]

문제설명 뱀이 맵을 기어다니면서 벽에 부딪히거나 자신의 몸을 밟는데 얼마의 시간이 걸리는 지 출력하는 문제입니다, 규칙 1. 처음에는 오른쪽으로 이동하고 시간이 지남에 따라서 이동방향이 달라진다. 2. 뱀이 이동하는 방식은 머리를 이동할칸으로 이동시키고 해당 자리에 사과가 있을 경우 그 사과를 먹고 몸 길이가 길어진다. 사과가 없을 경우 꼬리를 앞칸으로 당긴다. 작동 순서 1. 맵의 크기를 입력받고 맵을 생성합니다. 2. 사과의 개수를 입력받고 사과의 위치를 입력받습니다. 3. 방향전환의 횟수를 입력받고 방향을 전환할 시간과 전환할 방향을 입력받습니다. 4. 뱀의 위치를 저장하는 큐(snakesBodyX, snakesBodyY)를 생성합니다.......

백준|2075번|N번째 큰 수 [내부링크]

문제설명 N*N 개의 수를 입력받고 N번째로 큰 수를 출력하는 문제입니다. 작동 순서 1. N을 입력받습니다. 2. N개의 수열을 N번 입력받고 우선순위 큐에 저장합니다. 3. 우선순위 큐에 저장되어 있는 수를 앞에서부터 N-1개 제거합니다. 4. 우선순위 큐의 가장 앞에 있는 수를 출력합니다.(N-1개를 제거했으므로 N번째로 큰 수입니다.) 소스코드 후기 문제에 나와있는 규칙을 보고 그 규칙으로 문제를 풀어야 하나 했는데 그냥 단순하게 생각하면 쉽게 풀 수 있는 문제였습니다. 문제를 풀 때 너무 문제에 나와있는 글들에 집착하지 않도록 해야할 것 같습니다.

백준|1461번|도서관 [내부링크]

문제설명 도서관에 있는 책들의 원래 위치와 최대 들고갈 수 있는 책의 개수를 입력받고 모든 책을 제자리에 갖다 놓는데 필요한 최소한의 이동거리를 구하는 문제입니다.(마지막 책을 가져다놓은 뒤에는 원래 위치로 돌아올 필요가 없고, 책의 위치는 -10000<=책의 위치<=10000입니다.) 작동 순서 1. 원래 위치로 되돌려놔야할 책들의 개수와 한번에 들고 갈 수 있는 책의 개수를 입력받습니다. 2. 책들의 원래 위치를 입력받고 이를 정렬한 뒤 양수와 음수로 분리합니다. 3. 양수의 최장 이동거리와 음수의 최장 이동거리를 비교하고 더 긴거리는 이동거리에 1배만 더해주고 더 짧은거리는 2배(가져다놓으러 가는 거리+원래 위.......

백준|1697번|숨바꼭질 [내부링크]

문제설명 초기 숫자 N과 목표 지점 K를 입력받고 한 번의 연산마다 (-1, +1, *2) 중 하나를 수행할 때 N을 K로 만들기 위해 최소 몇번의 연산이 필요한지 출력하는 문제입니다. 작동 순서 1. N과 K를 입력받습니다. 2. N을 큐에 집어넣습니다. 3. 큐에 들어있는 숫자를 꺼내서 (-1, +1, *2)의 연산을 모두 수행해본뒤 해당 숫자에 방문한적이 없다면(배열의 값이 초기값인 0인경우) 그 숫자에 지금까지의 연산횟수를 입력하고 큐에 집어넣습니다. 4. 목표값을 찾은 경우 반복문을 종료합니다. 5. 배열의 목표값 번째에 있는 수(해당 수에 도달하기 위한 최소의 연산횟수)를 출력합니다. 소스코드 후기 풀면서 어려움이 많았던 문제입니다. 어제 풀.......

백준|11729번|하노이 탑 이동 순서 [내부링크]

문제설명 하노이탑의 원판 개수를 입력받고 모든 원판을 1번에서 3번으로 옮기는데 필요한 최소한의 연산 순서와 이동순서를 출력하는 문제입니다. 작동 순서 1. 원판의 개수 N을 입력받습니다. 2. 하노이탑의 이동순서는 옮기려는 원판 바로 위의 원판을 옮긴뒤 옮기려는 원판을 목표위치로 옮긴뒤 자신 바로위에 있던 원판을 목표위치로 옮기는 것으로 분해가 가능합니다. 3. 2번의 연산을 각 원판마다 수행하면 결국 N번째 원판을 옮기는 방식은 N-1의 원판부터 1번 원판까지 2번 연산을 수행하게 됩니다. 4. 모든 연산을 완료하면 이동횟수와 이동순서를 출력합니다. 소스코드 후기 재귀 문제를 풀어보니 생각보다 복잡하네요. 피보나치나 팩.......

백준|1464번|1로 만들기 [내부링크]

문제설명 정수 N을 세 가지 연산 방식을 이용하여 1로 만드는 최소한의 연산횟수를 출력하는 문제입니다. 연산의 종류 1. N이 3으로 나누어 떨어지면, 3으로 나눈다. 2. N이 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다. 작동 순서 1. 숫자 N을 입력받는다. 2. 숫자 N이 2 또는 3의 배수가 아닌 경우 나누기는 불가능하므로 1을 빼는 방법밖에 없다. 그러므로 N을 만드는 최소한의 연산횟수는 이전 숫자를 만드는 수행횟수+1이다. 3. 숫자 N이 2의 배수인 경우 2로 나눌수 있으므로 N을 만드는 최소한의 연산횟수는 N/2을 만드는 연산횟수+1이다. 4. 숫자 N이 3의 배수인 경우 3으로 나눌수 있으므로 N을 만드는 최소한의 연산횟수는 N/3을 만.......

백준|2225번|합분해 [내부링크]

문제설명 숫자 N과 K를 입력받고 정수 K개를 더 해 N을 만들 수 있는 경우의 수를 구하고 그 수를 1000000000으로 나눈 나머지를 출력하는 문제입니다. 작동 순서 1. 숫자 N과 K를 입력받습니다. 2. K가 1일때는 모든 숫자를 만드는 방법이 한가지뿐이고 K가 2일때는 모든 숫자를 만드는 방법은 N+1가지뿐이므로 dp[1]과 dp[2]에 값을 입력해줍니다. 3. dp[K][N]=dp[K-1][N]+dp[K][N-1]이므로 두 값을 더하고 그 수를 1000000000으로 나눈 나머지를 입력해줍니다. 4. 입력된 N과 K에 맞는 값을 출력해줍니다. 소스코드

백준|2757번|엑셀 [내부링크]

문제설명 엑셀 스프레드시트의 행번호와 열번호를 입력받고 엑셀식 표기법으로 출력하는 문제입니다. 작동 순서 1. 행번호와 열번호를 입력받습니다. 2. 입력받은 문자열을 행번호와 열번호로 분리합니다. 3. 열번호는 그냥 출력하면되므로 더 이상 건드릴 필요가 없습니다. 4. 행번호는 알파벳이 26개이므로 26진수를 생각하면 됩니다. 각 위치는 26진수의 지수이고 알파벳은 자릿값입니다. 5. 원래 26진수에서는 0부터 25까지의 숫자를 사용해야하지만 여기서는 1부터 26을 사용해야하므로 앞자리의 0을 뒷자리의 26으로 바꾸어주고 앞자리의 값이 26을 넘기면 뒷자리로 넘겨주는 연산을 앞에서부터와 뒤에서부터 총 두번을 수행합니다. 6. 각.......

백준|11726번|2×n 타일링 [내부링크]

문제설명 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 문제입니다. 작동 순서 1. 직사각형의 크기 n을 입력받습니다. 2. 계산을 해보면 2×n 크기의 직사각형을 채우는 방법의 수는 2×(n-1) 크기의 직사각형을 채우는 방법의 수+2×(n-2) 크기의 직사각형을 채우는 방법의 수와 같다는 것을 알 수 있습니다. 3. 각 n번째에 (n-1)의 값+(n-2)의 값을 넣어줍니다. 4. n번째 값을 출력합니다. 소스코드 후기 굉장히 간단한 DP문제라서 쉽게 풀 수 있었습니다. 숫자로는 간단한 규칙이 나와서 풀 수 있었는데 막상 설명을 하려고 하니 쉽지 않네요. 문제를 푸는 것 뿐만 아니라 그 답에 대해서 좀 더 깊게 생각을 해봐야 할 것 같.......

백준|1021번|회전하는 큐 [내부링크]

문제설명 양방향 큐에서 특정 위치의 값을 뽑아내는데 필요한 최소한의 연산 횟수를 구하는 문제입니다.(사용 가능한 연산은 큐 맨 앞의 값을 뽑기, 큐를 왼쪽으로 이동, 큐를 오른쪽으로 이동의 3가지입니다.) 작동 순서 1. 큐의 길이와 뽑아낼 값의 개수를 입력받습니다. 2. 큐를 생성하고 뽑아낼 값들을 입력받습니다. 3. 뽑아낼 큐의 위치를 확인하고 중간보다 앞에 있는 경우 2번연산을 계속 수행해서 원하는 값을 1번에 위치시키고 뽑아냅니다. 4. 뽑아낼 큐의 위치가 중간보다 뒤에 있는 경우 3번연산을 계속 수행해서 원하는 값을 1번에 위치시키고 뽑아냅니다. 5. 뽑아낼 수를 모두 뽑아낸 후 몇번의 연산이 수행되었는지 출력합니다. 소.......

백준|17298번|오큰수 [내부링크]

문제설명 길이 N의 수열을 입력받고 수열의 각 원소에 대해 자신보다 오른쪽에 있으면서 자신보다 큰 수들 중 가장 오른쪽에 있는 수들을 출력하는 문제입니다. 작동 순서 1. 수열의 길이 N을 입력받습니다. 2. 수열을 스택에 입력합니다. 3. 결과값을 저장할 길이 N의 배열과 오른쪽수들을 저장하는 스택을 생성합니다. 4. 스택의 가장 오른쪽에 있는 수는 자신보다 오른쪽에 있는 수가 없으므로 결과값을 저장하는 배열의 마지막 자리에 -1을 삽입하고 그 수를 오른쪽수들을 저장하는 스택에 저장합니다. 5. 스택의 마지막 값을 가져와서 오른쪽 수들의 스택에 있는 수들중 자신보다 큰 값이 나올때 까지 pop하고 자신보다 큰 수가 있는 경우 결.......

백준|1158번|요세푸스 문제 [내부링크]

문제설명 일정순서마다 수열의 맨앞자리를 제거할 때 그 순열에서 제거되는 수들을 순서대로 출력하는 문제입니다. 작동 순서 1. 수열의 길이와 몇번마다 수를 삭제할지를 정하는 숫자를 입력받습니다. 2. 큐에 수열을 입력합니다.(1부터 N+1까지) 3. 만약 count가 K가 아닌경우 큐 맨앞의 값을 큐 맨뒤로 보내고 count를 +1하고 count가 K인경우 맨앞의 수를 제고하고 count를 0으로 초기화합니다. 4. 삭제되는 수들을 순서대로 출력합니다. 소스코드

백준|1049번|기타줄 [내부링크]

문제설명 기타줄의 낱개가격과 6개묶음의 가격들을 입력받고 필요한 수량 이상의 기타줄을 구매하는데 드는 최소 비용을 출력하는 문제입니다. 작동 순서 1. 필요한 기타줄의 개수 N과 기타줄의 종류의 개수 M을 입력받습니다. 2. 낱개의 가격과 6개묶음의 가격들을 입력하고 각각 최소 값들을 저장합니다. 3. 모두 묶음으로 사는 경우, 묶음과 낱개의 조합으로 사는 경우, 모두 낱개로 사는 경우 중 필요 비용이 가장 낮은 경우의 비용을 출력합니다. 소스코드

백준|2981번|검문 [내부링크]

문제설명 수들을 입력받고 그 수들을 나누었을 때 나머지가 모두 같아지는 숫자들을 찾아서 출력하는 문제입니다. 작동 순서 1. 숫자들을 입력받습니다. 2. 숫자들을 정렬한 후 각 자릿수들간의 차이를 저장합니다. 3. 유클리드 호제법에서 A, B, C, D를 나머지가 같게 만드는 수를 구하기 위해서는 A-B, B-C, C-D의 공약수를 구하면 되므로 각 자릿수들의 차이의 공약수를 구해줍니다. 4. 최대공약수의 약수들을 모두 구합니다. 5. 최대공약수의 약수들을 출력합니다. 소스코드 후기 어려운 수학적 공식이 필요한 문제에다가 최대공약수의 약수를 구할 때도 그냥 단순하게 구했더니 식나초과가 나서 좀 고생을 했습니다. 수학공부를 좀더 해야 할.......

백준|3036번|링 [내부링크]

문제설명 숫자들을 입력받고 첫번째 입력받은 숫자를 두번째 이후로 입력받은 숫자들로 나눈 것을 기약분수 형태로 출력하는 문제입니다. 작동 순서 1. 숫자들을 입력받습니다. 2. 첫번째 숫자와 i번째 숫자의 최대공약수를 구합니다. 3. 첫번째 숫자를 최대공약수로 나눈 것을 분자, i번째 숫자를 최대공약수로 나눈 것을 분모로 연결해서 출력합니다. 소스코드 후기 문제에서는 바퀴가 회전하는 횟수를 구하라는 식으로 적혀있어서 혼동이 있었지만 구하는 방식을 알고보니 굉장히 간단하게 풀 수 있는 문제였습니다.

백준|11051번|이항 계수 2 [내부링크]

문제설명 숫자 N과 K를 입력받고 두 수의 이항계수를 10007로 나눈 나머지를 출력하는 문제입니다. 작동 순서 1. 두 수를 입력받습니다. 2. N과 K의 이항계수는 N!/(K!*(N-K)!이므로 N!, K!, (N-K)!을 구합니다. 3. 팩토리얼 수를 구할 때 시간을 단축하기 위해 메모이제이션을 활용합니다. 4. 이항계수를 구하면 10007로 나누고 나머지를 출력합니다. 소스코드 후기 이항계수1과 다른 점은 입력되는 수의 범위과 커진 것밖에 없어서 그렇게 어렵지 않게 풀 수 있었습니다. 하지만 다른 사람들의 풀이를 보니 전혀 달느 방법으로 푼 사람이 많던데 똑같은 문제를 풀 때도 다양한 풀이를 활용할 수 있도록 공부해야 할 것 같습니다.

백준|1012번|유기농 배추 [내부링크]

문제설명 배추를 키우는 밭에서 해충 제거를 위해 배추지렁이를 키우려고 한다. 배추지렁이는 서로 인접한 배추 사이만 이동할 수 있다고 할 때, 밭의 크기와 배추의 위치를 입력받고 배추지렁이가 몇마리 필요한지 출력하는 문제입니다. 작동 순서 1. 배추밭의 크기와 배추의 개수를 입력받습니다. 2. 입력받은 배추밭의 크기에 따라 2차원 boolean 배열 field와 visited를 생성합니다. 2개를 생성하는 이유는 하나는 방문처리용으로 이용하고 하나는 배추의 위치를 입력받기 위함입니다. 3. 배추의 위치를 입력받고 field에서 입력받은 위치를 true로 바꿔줍니다. 4. DFS를 이용하여 각 위치를 방문하고 방문한 곳을 위치처리해줍니다. 5. 방문.......

백준|9095번|1,2,3 더하기 [내부링크]

문제설명 입력받은 정수를 1,2,3의 조합으로 나타낼수 있는 방법의 수를 출력하는 문제입니다. 작동 순서 1. 각 정수를 나타낼 수 있는 조합의 개수는 (n-1)의 조합의 개수+(n-2)의 조합의 개수+(n-3)의 조합의 개수이므로 모두 구해줍니다. 2. 입력받은 정수를 나타낼 수 있는 조합의 개수를 출력합니다. 소스코드 후기 처음볼때는 복잡해보였는데 수들의 규칙을 이해하고 나니 쉽게 풀 수 있었습니다. DP문제는 구현은 복잡하지않은데 점화식을 세우는게 어려운것 같습니다.

백준|2004번|조합 0의 개수 [내부링크]

문제설명 두 개의 숫자 n,m을 입력받고 n,m의 이항계수의 끝자리의 0의 개수를 출력하는 문제입니다. 작동 순서 1. 숫자 n, m을 입력받습니다. 2. 이항계수를 구하는 방법은 n!/m!*(n-m)!이고 끝자리의 0의 개수를 구하는 방법은 그 수를 소인수 분해했을 때 2의 개수와 5의 개수 중 적은 수이므로 n!의 2의 개수-(m!의 2의 개수+(n-m)!의 2의 개수)와 n!의 5의 개수-(m!의 5의 개수+(n-m)!의 5의 개수)중 작은 수를 출력합니다. 소스코드 후기 저번에 풀었던 팩토리얼 0의 개수에서는 5의 개수만 체크해도 정답이었는데 이번 문제에서는 2의 개수도 체크해야해서 푸는데 오래걸렸습니다. 비슷한 문제라도 여러가지를 생각하는 법을 배워야 할 것.......

백준|7576번|토마토 [내부링크]

문제설명 토마토를 보관하는 창고에 토마토들이 담긴 상자가 있습니다. 토마토 상자에는 잘익은 토마토가 들어있는 칸, 아직 익지않은 토마토가 들어있는 칸, 토마토가 들어있지 않은 칸이 있습니다. 잘 익은 토마토들은 하루마다 상하좌우로 인접해있는 아직 익지않은 토마토들을 잘 익은 토마토들로 만들어 줄 때 상자안의 토마토들이 모두 익기 위해서는 며칠이 걸리는지 출력하는 문제입니다. 작동 순서 1. 상자의 크기를 입력받습니다. 2. 상자안 토마토의 상태를 입력받습니다.(0은 익지 않은 상태, 1은 잘 익은 상태, -1은 토마토가 없는 상태) 3. 상자안의 익지않은 토마토의 개수를 확인하고 잘 익은 토마토의 위치를 큐에 집어넣습니다.......

백준|2217번|로프 [내부링크]

문제설명 로프들이 버틸수 있는 무게를 입력받고 로프들을 조합하여 들어올릴 수 있는 최대 무게를 구하는 문제입니다.(모든 로프를 사용하지 않아도 되고, 로프를 여러개 사용하면 각 로프에는 w/k의 무게가 걸립니다.) 작동 순서 1. 각 무게들을 입력받고 배열에 저장합니다. 2. 무게들을 역순으로 정렬합니다. 3. 현재 무게 X 현재까지의 로프의 개수를 통해 현재 조합으로 들 수 있는 무게를 구합니다. 4. 현재 조합으로 들 수 있는 무게가 지금까지의 최대 무게보다 큰 경우 최대 무게로 저장합니다. 5. 계산이 끝나면 최대 무게를 출력합니다. 소스코드

백준|1934번|최소공배수 [내부링크]

문제설명 말 그대로 두 수를 입력받고 두 수의 최소공배수를 출력하는 문제입니다. 작동 순서 1. 두 수를 입력받습니다. 2. 두 수의 최소공배수는 두 수의 곱/두 수의 최대공약수이므로 두 수의 최대공약수를 구해줍니다. 3. 두 수의 곱/두 수의 최대공약수를 출력합니다. 소스코드 후기 너무 간단한 문제라서 쉽게 풀 수 있었습니다.

백준|17219번|비밀번호 찾기 [내부링크]

문제설명 사이트 주소와 비밀번호를 입력받고 원하는 사이트의 비밀번호를 출력하는 문제입니다. 작동 순서 1. 사이트 주소와 비밀번호를 딕셔너리로 저장합니다. 2. 딕셔너리에서 사이트 주소를 이용해서 해당 사이트의 비밀번호를 출력합니다. 소스코드 후기 너무 간단한 문제라서 굉장히 쉽게 풀었습니다. input()을 사용해서 입력을 받을 때는 16000ms가 걸렸는데 sys.stdin.readline()을 쓰니 270ms정도가 나왔네요. 같은 프로그램이더라도 사용하는 함수에 따라 성능이 천차만별 이라는 것을 느낀것 같습니다.

백준|11724번|연결 요소의 개수 [내부링크]

문제설명 그래프의 정점과 간선들을 입력받고 몇개의 연결 요소로 이루어져있는지 출력하는 문제입니다. 작동 순서 1. 그래프의 정점과 간선들의 개수를 입력받습니다. 2. 그래프의 간선들을 입력받고 각 정점의 연결리스트에 삽입해줍니다. 3. 정점들중 하나를 선택해서 너비 우선 탐색을 하고 연결요소를 세는 변수 count에 1을 더해줍니다. 4. 만약 탐색을 시작한 원소에 이어진 원소들이 있을 경우 해당 원소들을 방문처리 해줍니다. 5. 탐색이 끝났으면 방문처리가 되어있지 않은 정점들중 하나를 선택해서 너비 우선 탐색을 하고 연결요소를 세는 변수 count에 1을 더해줍니다. 6. 위 과정을 방문처리가 되자 않은 원소가 없을 때까지 반복.......

백준|9461번|파도반 수열 [내부링크]

문제설명 숫자 N을 입력받고 파도반 수열의 N번째 수를 출력하는 문제입니다. 작동 순서 1. 숫자 N을 입력받습니다. 2. N이 1, 2, 3일경우 1을 반환하고 4, 5일경우 2를 반환합니다. 3. N이 6이상인 경우 파도반 수열 P(N)은 P(N-1)+P(N-5)이므로 메모이제이션을 활용해 값을 구해줍니다. 4. 구한 값을 출력합니다. 소스코드 후기 굉장히 간단한 문제라서 별 문제 없이 풀 수 있었습니다.

백준|1427번|소트인사이드 [내부링크]

문제설명 숫자를 입력받고 그 숫자를 큰 숫자부터 출력하는 문제입니다. 작동 순서 1. 숫자를 입력받고 그 숫자를 한자리마다 분리해서 배열 형식으로 만들어줍니다. 2. 숫자들이 들어있는 배열을 역순으로 정렬해줍니다. 3. 숫자들을 출력해줍니다. 소스코드

파이썬 언어로 가위바위보 만들기 [내부링크]

파이썬을 이용하여 만든 간단한 가위바위보 게임 입니다. 가위바위보를 계속하거나 그만하거나 선택할 수 ...

코드업 파이썬 6097번 예제 : 설탕과자 뽑기 [내부링크]

코드업 6097번 예제인 설탕과자 뽑기는 원하는 사이즈의 판을 생성해서 그 위에 막대를 놓는 프로그램을 만...

코드업 파이썬 6098번 예제: 성실한 개미 [내부링크]

코드업 6098번 예제인 성실한 개미는 10*10 사이즈의 판에 길은 0, 벽은 1, 먹이는 2로 표현해서 개미가 길...

프로그래머스|정렬|K번째수 [내부링크]

문제설명 프로그래머스 정렬 연습의 K번째수 문제는 배열과 3가지 숫자를 입력받고 3가지 숫자에 맞추어 ...

백준|1712번|손익분기점 [내부링크]

문제설명 이 문제는 물건 수에 상관없는 고정비용 A, 물건을 생산하는데 드는 비용 B, 물건 가격 C를 입...

백준|2292번|벌집 [내부링크]

문제설명 위 그림과 같은 규칙으로 수가 나올때 1에서부터 해당 숫자까지 가는데 최소 몇 칸을 가야하는지 ...

백준|11399번|ATM [내부링크]

문제설명 ATM기 한대에서 여러명이 돈을 인출하는데 모든 사람이 걸린 시간을 모두 합했을 때 최소로 나...

백준|11047번|동전 [내부링크]

문제설명 동전의 종류와 금액을 입력받아서 입력받은 금액을 만들수 있는 동전의 최소개수를 구하는 문제입...

백준|1337번|올바른 배열 [내부링크]

문제설명 이 문제에서 올바른 배열은 { 3,4,5,6,7} 처럼 5개의 숫자가 이어지는 배열입니다. 이 문제는 임의...

백준|11536번|줄 세우기 [내부링크]

문제설명 이름들을 입력받아서 그 이름들이 오름차순인지 내림차순인지 아니면 정렬이 되지않았는지 구분해...

백준|2012번|등수 매기기 [내부링크]

문제설명 예상 등수들을 입력받아서 예상 등수와 실제 등수의 차이를 불만도라 할 때, 최소의 불만도를 구...

백준|2839번|설탕 배달 [내부링크]

문제설명 일정무게의 설탕을 3kg, 5kg 자루에 나누어담을 때 최소로 필요한 자루의 개수를 구하는 문제입니...

백준|2869번|달팽이는 올라가고 싶다 [내부링크]

문제설명 달팽이가 하루에 올라가는 높이, 자면서 내려오는 높이, 총 올라갈 높이를 입력받고 며칠이 걸리...

백준|1931번|회의실 배정 [내부링크]

문제설명 한 회의실에서 시간별로 회의를 하는데 그 회의들의 시작 시간과 종료 시간들을 입력받고 최대 몇...

백준|11509번|풍선 맞추기 [내부링크]

문제설명 화살을 쏴서 풍선을 모두 맞추는데 최소 몇개의 화살이 필요한지 찾는 문제입니다. 작동 순서 1....

백준|1193번|분수찾기 [내부링크]

문제설명 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2-> 1/3처럼 지그재그로 분수의 번호를 매긴다고 ...

백준|2775번|부녀회장이 될테야 [내부링크]

문제설명 아파트의 a층의 b호에는 (a-1)층의 1호부터 b호까지 인원수의 합만큼의 사람이 살아야한다. 아파...

백준|1978번|소수 찾기 [내부링크]

문제설명 숫자들을 입력받아서 그 숫자들 중 소수가 몇개 있는지 출력하는 문제입니다. 작동 순서 1. 입력...

백준|1929번|소수 구하기 [내부링크]

문제설명 두 숫자를 입력받고 그 사이의 소수를 출력하는 문제입니다. 작동 순서 1. 두 숫자를 입력받습니...

백준|4948번|베르트랑 공준 [내부링크]

문제설명 임의의 숫자 n들을 입력받아서 n과 n*2 사이의 소수의 개수를 구하는 문제입니다. 작동 순서 1. ...

백준|9020번|골드바흐의 추측 [내부링크]

문제설명 짝수를 입력받아서 소수 두 개의 합으로 입력받은 짝수를 만들 수 있는 조합중 두 숫자의 차이가 ...

백준|3009번|네 번째 점 [내부링크]

문제설명 직각 사각형의 세 점을 입력받고 마지막 점의 위치를 구하는 문제입니다. 작동 순서 1. 세 점의 ...

백준|3053번|택시 기하학 [내부링크]

문제설명 반지름을 입력받고 유클리드 기하학에서의 넓이와 택시 기하학에서의 넓이를 출력하는 문제입니다...

백준|1002번|터렛 [내부링크]

문제설명 두 원의 좌표와 반지름을 입력받아서 두 원의 교점의 개수를 출력하는 문제입니다.(단, 두 원의 ...

프로그래머스|더 맵게 [내부링크]

문제설명 음식들의 매운 정도인 스코빌과 기준치인 K를 입력받고 모든 음식들의 스코빌이 K이상이 되도록...

프로그래머스|가장 큰 수 [내부링크]

문제설명 숫자들을 입력받고 그 숫자들을 연결해서 만들 수 있는 가장 큰 수를 출력하는 문제입니다. 작동 ...

백준|7568번|덩치 [내부링크]

문제설명 사람들의 키와 몸무게를 입력받아서 그 사람의 덩치 순위를 출력하는 문제입니다. 작동 순서 1. ...

백준|1436번|영화감독숌 [내부링크]

문제설명 전체 자연수 중에서 입력받은 숫자 번째로 666이 포함되는 숫자를 구하는 문제입니다. 작동 순서 ...

코드포스|1553C|Penalty [내부링크]

문제설명 축구 경기에서 두 팀의 승부차기 골 기록표를 입력받고 경기가 끝나는데 필요한 최소한의 시행횟...

백준|1011번|Fly me to the Alpha Centauri [내부링크]

문제설명 두 곳의 위치를 입력받고 A에서 B로 이동을 하는데 이동거리는 1이상 이어야하고 한 번 이동할...

재귀함수를 통한 이진탐색 [내부링크]

정렬이 되어있는 배열을 탐색하는 함수입니다. 재귀함수를 이용한 이진탐색으로 찾는 수가 있으면 "값...

백준|1541번|잃어버린 괄호 [내부링크]

문제설명 +, -, 정수로 이루어진 문자열을 입력받고 괄호를 적절하게 쳐서 최저의 수를 구하는 문제입니다....

백준|13305번|주유소 [내부링크]

문제설명 각 도시간의 거리와 각 도시별 주유소의 리터당 가격을 입력받고 첫도시부터 마지막도시까지 최소...

백준|1339번|단어수학 [내부링크]

문제설명 문자열들을 입력받고 문자열에 숫자를 대입하여 모두 더했을때 최대가 되는 값을 출력하는 문제입...

백준|1946번|신입 사원 [내부링크]

문제설명 각 지원자들의 서류점수와 면접점수의 등수를 입력받고 나서 서류점수와 면접점수 둘 중 하나라도...

백준|1065번|한수 [내부링크]

문제설명 양의 정수 X의 각 자리가 등차수열을 이루면, 그 수를 한수라고 한다.(ex. 123,147은 각 자리가 ...

백준|1715번|카드 정렬하기 [내부링크]

문제설명 각각 카드의 수가 A, B인 두 묶음의 카드를 합쳐서 하나로 만드는데 필요한 비교의 횟수를 A+...

백준|1744번|수 묶기 [내부링크]

문제설명 이 문제는 처음에 n개의 수를 입력받습니다. 각각의 숫자들은 모두 단 한번만 곱하거나 곱하지 않...

백준|18258번|큐 2 [내부링크]

문제설명 6개의 명령어를 입력받고 그에 따라서 수행하고 그 결과를 출력하는 프로그램입니다. 소스코드

백준|10866번|덱 [내부링크]

문제설명 여러가지 명령어들을 입력받고 연산을 수행한 뒤 그 결과를 출력하는 프로그램입니다. 소스코드

백준|5430번|AC [내부링크]

문제설명 AC라는 언어를 만들었는데 그 언어의 명령어는 배열의 뒤집는 R과 마지막 자리에 있는 원소를 ...

백준|18870번|좌표 압축 [내부링크]

문제설명 배열을 입력받고 각 숫자가 해당 배열에서 몇번째로 큰 수인지 출력하는 문제입니다. 작동 순서 1...

백준|1927번|최소 힙 [내부링크]

문제설명 정수들을 입력받아서 0을 입력받은 경우 배열의 최소값을 pop하고 출력하고 0이외의 숫자가 들어...

백준|9012번|괄호 [내부링크]

문제설명 괄호들["(",")"]을 입력받고 이 괄호가 제대로 된 괄호인지 판단하는 프로그...

백준|2108번|통계학 [내부링크]

문제설명 숫자들을 입력받고 평균, 중간값, 최빈값, 최솟값과 최댓값의 차이를 출력하는 프로그램입니다. ...

몬티홀 문제 [내부링크]

문제설명 3개중 하나만 당첨인 선택지들중 하나를 선택하고 사회자가 꽝의 위치를 하나 공개했을 때 자신의...

프로그래머스|기능개발 [내부링크]

문제설명 각 기능들의 배포 순서와 개발 순서를 입력받고 하루에 몇 개씩 배포할 수 있는지 출력하는 문제...

메모이제이션을 활용한 피보나치 함수 [내부링크]

문제설명 재귀함수를 통한 피보나치 함수인데 기존의 방식을 활용하면 너무 오랜 시간이 걸려서 메모이제이...

백준|19637번|IF문 좀 대신 써줘 [내부링크]

문제설명 각 구간들과 구간에 따른 칭호를 입력받고 캐릭터의 전투력에 따라서 칭호를 출력하는 문제입니다...

백준|9184번|신나는 함수 실행 [내부링크]

문제설명 위의 함수를 좀 더 빠르게 수행할 수 있도록 하는 문제입니다. 작동 순서 1. 입력의 크기가 -50부...

백준|10845번|큐 [내부링크]

문제설명 명령어들을 입력받고 그 기능들을 구현하는 문제입니다. 명령의 종류: 1. push X: 정수 X를 큐...

백준|10799번쇠|막대기 [내부링크]

문제설명 쇠막대기를 자르는 레이저와 쇠막대기들이 있을 때 이들의 위치에 따라서 쇠막대기가 몇개로 잘리...

백준|4673번|셀프 넘버 [내부링크]

문제설명 어느 한 자연수 N과 N의 각 자릿수의 합을 생성자라고 합니다. 이러한 생성자를 가지지 않는 수...

백준|1026번|보물 [내부링크]

문제설명 A 배열과 B 배열을 입력받고 B 배열은 재배열하지 않은 채 A배열만 재배치하여 A[0]*B[0]+....

백준|11050번|이항 계수 1 [내부링크]

문제설명 자연수 n과 정수 k를 입력받고 nCk를 구하는 프로그램입니다. 작동 순서 1. n과 k를 입력받습니...

백준|11866번|요세푸스 문제 [내부링크]

문제설명 n명의 사람 원으로 둘러앉아있을 때 순서대로 k번째 사람을 제거하는 요세푸스 문제를 프로그래밍...

백준|2609번|최대공약수와 최소공배수 [내부링크]

문제설명 두 수를 입력받아서 최대공약수와 최소공배수를 출력하는 간단한 문제입니다. 작동 순서 1. 두 수...

백준|1874번|스택 수열 [내부링크]

문제설명 n개의 수로 이루어진 수열을 입력받아서 1부터 n까지의 수를 스택에 넣었다가 빼서 그 수열을 만...

백준|1920번|수 찾기 [내부링크]

문제설명 N개의 정수를 입력받고 그 중에 찾는 수가 있으면 1 없으면 0을 출력하는 프로그램입니다. 작동 ...

소인수분해 [내부링크]

문제설명 소인수분해를 하고 그 결과를 출력하는 프로그램입니다. 작동 순서 1. 수를 입력받습니다. 2. fac...

백준|2164번|카드2 [내부링크]

문제설명 N을 입력받고 1부터 N까지의 숫자카드를 오름차순 형식으로 쌓았을 때 제일 위에 있는 카드를 ...

백준|4949번|균형잡힌 세상 [내부링크]

문제설명 문자열을 입력받고 각 괄호들이 균형을 이루는지 판정하여 출력하는 프로그램입니다. 규칙 1. 모...

백준|1966번|프린터 큐 [내부링크]

문제설명 1부터 10까지로 이루어진 수열을 입력받고 그 수열을 큐로 구현한 뒤 나머지 숫자들중 현재 숫자...

백준|1654번|랜선 자르기 [내부링크]

문제설명 가지고 있는 랜선의 개수, 필요한 개수, 가지고 있는 랜선들의 길이를 받은뒤 랜선을 모두 같은 ...

백준|2304번|창고 다각형 [내부링크]

문제설명 N개의 막대 기둥의 높이와 위치를 입력받아서 막대 기둥을 모두 감싸는 도형을 만들 때 최소한의...

백준|2805번|나무 자르기 [내부링크]

문제설명 나무들의 높이와 필요한 나무의 양을 입력받고 어느 높이에서 잘랐을 때 최대한 적은 양을 가져갈...

백준|1003번|피보나치 함수 [내부링크]

문제설명 피보나치 함수를 실행할 때 0과 1이 몇번씩 나오는지 출력하는 프로그램입니다. 작동 순서 1. 피...

백준|1107번|리모컨 [내부링크]

문제설명 숫자 0부터9까지와 +,-로 이루어진 리모컨에서 숫자버튼 일부가 고장났을 때 원하는 채널로 이동...

백준|18111번|마인크래프트 [내부링크]

문제설명 마이크래프트 게임에서 지형의 크기와 높이, 그리고 가지고 있는 블록의 개수를 입력받고 지형의 ...

백준|1676번|팩토리얼 0의 개수 [내부링크]

문제설명 숫자 N을 입력받고 N!에서 맨뒤에서부터 어느자리까지 0이 있는지 출력하는 문제입니다. 작동 ...

백준|11659번|구간 합 구하기4 [내부링크]

문제설명 숫자들과 구간을 입력받아서 그 구간의 합을 출력하는 문제입니다. 작동 순서 1. 입력받을 숫자의 개수와 테스트케이스의 개수를 입력받습니다. 2. 입력받는 숫자들을 누적합형식으로 배열에 저장합니다.(배열 저장값=이전 배열의 저장값+현재 입력값) 3. 합을 구할 구간을 입력받습니다. 4. 구간의 끝자리 j까지의 합(누적합 배열의 j번째 원소)에서 구간의 첫자리 i 이전 까지의 합(누적합 배열의 i-1번째원소)를 빼줍니다. 5. 입력받은 구간의 합을 출력합니다. 소스코드 후기 처음에 배열에 숫자들을 입력받고 구간을 입력받을 때 마다 숫자들을 더해서 합을 구했었는데 그렇게 하니까 시간초과가 나오더군요. 그래서 문제 질.......

백준|1620번|나는야포켓몬마스터 [내부링크]

문제설명 포켓몬의 이름을 입력받고 난 뒤 그 포켓몬이 몇번째로 입력되었는지 또는 몇번째로 입력 된 포켓몬이 무엇인지 출력하는 문제입니다. 작동 순서 1. 두 개의 딕셔너리를 생성해서 하나는 번호를 키로, 하나는 이름을 키로 지정합니다. 2. 찾을 검색어를 입력받고 검색어가 숫자인경우 번호를 키로 지정한 딕셔너리에서 검색하고 검색어가 문자열인 경우 이름을 키로 지정한 딕셔너리에서 검색을 합니다. 3. 검색결과를 출력합니다. 소스코드 후기 굉장히 간단한 문제여서 딱히 할 말이 없는 것 같습니다. 딕셔너리에 키와 밸류 모두 검색하는 기능이 있으면 좋을텐데 없는게 아쉬웠습니다.