khk990의 등록된 링크

 khk990로 등록된 네이버 블로그 포스트 수는 306건입니다.

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

https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 11659번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 구간 합 구하기 4 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 63021 26751 20412 40.698% 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. ... www.acmicpc.net 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다

[Java] 백준 16929 Two Dots [내부링크]

https://www.acmicpc.net/problem/16929 16929번: Two Dots 각각의 칸은 색이 칠해진 공이 하나씩 있다. 이 게임의 핵심은 같은 색으로 이루어진 사이클을 찾는 것이다. 다음은 위의 게임판에서 만들 수 있는 사이클의 예시이다. 점 k개 d 1 , d 2 , ..., d k 로 이루어진 사이클의 정의는 아래와 같다. 모든 k개의 점은 서로 다르다. k는 4보다 크거나 같다. 모든 점의 색은 같다. 모든 1 ≤ i ≤ k-1에 대해서, d i 와 d i+1 은 인접하다. 또, d k 와 d 1 도 인접해야 한다. 두 점이 인접하다는 것은 각각의 점이 들어있는 칸이 변을 공유한다는 의미이다. 게임... www.acmicpc.net 문제 Two Dots는 Playdots, Inc.에서 만든 게임이다. 게임의 기초 단계는 크기가 N×M인 게임판 위에서 진행된다. 각각의 칸은 색이 칠해진 공이 하나씩 있다. 이 게임의 핵심은 같은 색으로 이루어진 사이클을 찾

[Java] 백준 1238 파티 (플로이드 워셜) [내부링크]

https://www.acmicpc.net/problem/1238 1238번: 파티 1238번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 파티 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 33576 16651 11100 47.650% 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 T i (1 ≤ T i ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서... www.acmicpc.net 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(

[Java] 백준 1238 파티 (다익스트라) [내부링크]

https://www.acmicpc.net/problem/1238 1238번: 파티 1238번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 파티 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 33596 16657 11105 47.638% 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 T i (1 ≤ T i ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서... www.acmicpc.net 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(

[Java] 백준 14889 스타트와 링크 [내부링크]

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 S ij 는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 S ij 의 합이다. S ij 는... www.acmicpc.net 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과

[Java] 백준 12904 A와 B [내부링크]

https://www.acmicpc.net/problem/12904 12904번: A와 B 12904번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 A와 B 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 9558 4490 3720 46.757% 문제 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈이는 간단한 게임을 만들기로 했다. 두 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임이다.... www.acmicpc.net 문제 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란

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

https://www.acmicpc.net/problem/1744 1744번: 수 묶기 문제 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자신)를 묶는 것은 불가능하다. 그리고 어떤 수를 묶게 되면, 수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다. 예를 들면, 어떤 수열이 {0, 1, 2, 4, 3, 5}일 때, 그냥 이 수열의 합을 구하면 0+1+2+4+3+5 = 15이다. 하지만, 2와 3을 묶... www.acmicpc.net 문제 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만

[Java] 백준 17069 파이프 옮기기 2 [내부링크]

https://www.acmicpc.net/problem/17069 17069번: 파이프 옮기기 2 문제 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다. 오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다. 파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다. 파이프는 매우 무겁기 때문에, 유현이는 파이프를... www.acmicpc.net 문제 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고

[Java] 백준 16987 계란으로 계란치기 [내부링크]

https://www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 문제 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱걸이를 5회 하는 기적의 운동 루틴을 통해 뇌와 근육을 동시에 단련한다. 근육을 단련할 때 식단이 정말로 중요하다는 것을 아는 인범이는 탄수화물이 많은 밥이나 빵 따위의 아침 식사를 대신해 단백질이 많은 계란찜을 해먹는다. 계란찜을 먹기 위해서는 계란을 깨야 하는데, 인범이는 힘이 너무 넘치는 나머지 부엌의 대리석을 이용해 계란을 깨... www.acmicpc.net 문제 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱걸이를 5회 하는 기

[Java] 백준 15684 사다리 조작 [내부링크]

https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 문제 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점이다. 가로선은 인접한 두 세로선을 연결해야 한다. 단, 두 가로선이 연속하거나 서로 접하면 안 된다. 또, 가로선은 점선 위에 있어야 한다. 위의 그림에는 가... www.acmicpc.net 문제 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그

[Java] 백준 16945 매직 스퀘어로 변경하기 [내부링크]

https://www.acmicpc.net/problem/16945 16945번: 매직 스퀘어로 변경하기 문제 1부터 N 2 까지의 수가 하나씩 채워져 있는 크기가 N×N인 배열이 있고, 이 배열의 모든 행, 열, 길이가 N인 대각선의 합이 모두 같을 때, 매직 스퀘어 라고 한다. 크기가 3×3인 배열 A가 주어졌을 때, 이 배열을 매직 스퀘어로 변경하려고 한다. 한 칸에 있는 수 a를 b로 변경하는 비용은 |a - b| 이다. 예를 들어, 아래와 같은 경우를 살펴보자. 5 3 4 1 5 8 6 4 2 이 배열의 수를 아래와 같이 변경하면 매직 스퀘어가 되고, 비용은 |5 - 8| + |8 - 9| + |4 - 7| = 7 이다. 8 ... www.acmicpc.net 문제 1부터 N2까지의 수가 하나씩 채워져 있는 크기가 N×N인 배열이 있고, 이 배열의 모든 행, 열, 길이가 N인 대각선의 합이 모두 같을 때, 매직 스퀘어라고 한다. 크기가 3×3인 배열 A가 주어졌을 때, 이

[Java] 백준 16198 에너지 모으기 [내부링크]

https://www.acmicpc.net/problem/16198 16198번: 에너지 모으기 문제 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 W i 이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있다. 에너지 구슬 하나를 고른다. 고른 에너지 구슬의 번호를 x라고 한다. 단, 첫 번째와 마지막 에너지 구슬은 고를 수 없다. x번째 에너지 구슬을 제거한다. W x-1 × W x+1 의 에너지를 모을 수 있다. N을 1 감소시키고, 에너지 구슬을 1번부터 N번까지로 다시 번호를 매긴다. 번호는 첫 구슬이 1번, 다음 구슬이 2번,... www.acmicpc.net 문제 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있다. 에너지 구슬 하나를 고른다

[Java] 백준 1080 행렬 [내부링크]

https://www.acmicpc.net/problem/1080 1080번: 행렬 문제 0과 1로만 이루어진 행렬 A와 행렬 B가 있다. 이때, 행렬 A를 행렬 B로 바꾸는데 필요한 연산의 횟수의 최솟값을 구하는 프로그램을 작성하시오. 행렬을 변환하는 연산은 어떤 3×3크기의 부분 행렬에 있는 모든 원소를 뒤집는 것이다. (0 → 1, 1 → 0) 입력 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 만약 A를 B로 바꿀 수 없다면 -1... www.acmicpc.net 문제 0과 1로만 이루어진 행렬 A와 행렬 B가 있다. 이때, 행렬 A를 행렬 B로 바꾸는데 필요한 연산의 횟수의 최솟값을 구하는 프로그램을 작성하시오. 행렬을 변환하는 연산은 어떤 3×3크기의 부분 행렬에 있는 모든 원소를 뒤집는 것이다

[Java] 백준 11047 동전 0 [내부링크]

https://www.acmicpc.net/problem/11047 11047번: 동전 0 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 A i 가 오름차순으로 주어진다. (1 ≤ A i ≤ 1,000,000, A 1 = 1, i ≥ 2인 경우에 A i 는 A i-1 의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개... www.acmicpc.net 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N

[Java] 백준 11399 ATM [내부링크]

https://www.acmicpc.net/problem/11399 11399번: ATM 11399번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 ATM 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 79886 53598 43349 67.618% 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 P i 분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P 1 = 3... www.acmicpc.net 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서,

[Java] 백준 2875 대회 or 인턴 [내부링크]

https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 2875번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 대회 or 인턴 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 23702 10332 8701 43.503% 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 ... www.acmicpc.net 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이

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

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 1541번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 잃어버린 괄호 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 60033 31322 24853 51.701% 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, ... www.acmicpc.net 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소

[Java] 백준 1783 병든 나이트 [내부링크]

https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 문제 병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다. 2칸 위로, 1칸 오른쪽 1칸 위로, 2칸 오른쪽 1칸 아래로, 2칸 오른쪽 2칸 아래로, 1칸 오른쪽 병든 나이트는 여행을 시작하려고 하고, 여행을 하면서 방문한 칸의 수를 최대로 하려고 한다. 병든 나이트의 이동 횟수가 4번보다 적지 않다면, 이동 방법을 모두 한 번씩 사용해야 한다. 이동 횟수가 4번보다 적은 경우(방문한 칸이 5개 미만)에는 이동 방법에 대한 제약이 없다... www.acmicpc.net 문제 병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다. 2칸 위로, 1칸 오른쪽 1칸 위로, 2칸 오른쪽 1칸 아래로, 2칸 오른

[Java] 백준 10610 30 [내부링크]

https://www.acmicpc.net/problem/10610 10610번: 30 10610번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 30 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 38544 15207 12041 39.018% 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라. 입력 N을 입력받는다. N는 최대 10 5 개의 숫... www.acmicpc.net 문제 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어

[Java] 백준 1967 트리의 지름 [내부링크]

https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 문제 트리(tree)는 사이클이 없는 무방향 그래프이다. 트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재하게 된다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이럴 때 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다. 이런 두 노드 사이의 경로의 길이를 트리의 지름이라고 한다. 정확히 정의하자면 트리에 존재하는 모든 경로들 중에서 가장 긴 것의 길이를 말한다. 입력으로 루트가 있는 트리를 가중치가 있는 간선들로 줄 때, ... www.acmicpc.net 문제 트리(tree)는 사이클이 없는 무방향 그래프이다. 트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재하게 된다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것

[Java] 백준 2250 트리의 높이와 너비 [내부링크]

https://www.acmicpc.net/problem/2250 2250번: 트리의 높이와 너비 문제 이진트리를 다음의 규칙에 따라 행과 열에 번호가 붙어있는 격자 모양의 틀 속에 그리려고 한다. 이때 다음의 규칙에 따라 그리려고 한다. 이진트리에서 같은 레벨(level)에 있는 노드는 같은 행에 위치한다. 한 열에는 한 노드만 존재한다. 임의의 노드의 왼쪽 부트리(left subtree)에 있는 노드들은 해당 노드보다 왼쪽의 열에 위치하고, 오른쪽 부트리(right subtree)에 있는 노드들은 해당 노드보다 오른쪽의 열에 위치한다. 노드가 배치된 가장 왼쪽 열과 오른쪽 열 사이엔 아무 노드도 없이 비어있는 열은 없다. 이... www.acmicpc.net 문제 이진트리를 다음의 규칙에 따라 행과 열에 번호가 붙어있는 격자 모양의 틀 속에 그리려고 한다. 이때 다음의 규칙에 따라 그리려고 한다. 이진트리에서 같은 레벨(level)에 있는 노드는 같은 행에 위치한다. 한 열에는

[Java] 백준 14225 부분수열의 합 [내부링크]

https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합 14225번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 부분수열의 합 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 8842 4197 2854 43.493% 문제 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다. 입력 ... www.acmicpc.net 문제 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=

[Java] 백준 6603 로또 [내부링크]

https://www.acmicpc.net/problem/6603 6603번: 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34]) 집합 S와 k가... www.acmicpc.net 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어,

[Java] 백준 1182 부분수열의 합 [내부링크]

https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 1182번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 부분수열의 합 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 60557 27907 18121 44.384% 문제 N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두... www.acmicpc.net 문제 N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다.

[Java] 백준 15658 연산자 끼워넣기 (2) [내부링크]

https://www.acmicpc.net/problem/15658 15658번: 연산자 끼워넣기 (2) 문제 N개의 수로 이루어진 수열 A 1 , A 2 , ..., A N 이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 연산자의 개수는 N-1보다 많을 수도 있다. 모든 수의 사이에는 연산자를 한 개 끼워넣어야 하며, 주어진 연산자를 모두 사용하지 않고 모든 수의 사이에 연산자를 끼워넣을 수도 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어... www.acmicpc.net 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 연산

[Java] 프로그래머스 우박수열 정적분 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/134239 코딩테스트 연습 - 우박수열 정적분 콜라츠 추측이란 로타르 콜라츠(Lothar Collatz)가 1937년에 제기한 추측으로 모든 자연수 n에 대해 다음 작업을 반복하면 항상 1로 만들 수 있다는 추측입니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2.결과로 나온 수가 1보다 크다면 1번 작업을 반복합니다. 예를 들어 주어진 수가 5 라면 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 이되어 총 5번만에 1이 됩니다. 수가 커졌다 작아지기를 반복하는 모습이 비구름에서 빗방울이 오르락내리락하며 우박이 되는 모습... school.programmers.co.kr 문제 설명 콜라츠 추측이란 로타르 콜라츠(Lothar Collatz)가 1937년에 제기한 추측으로 모든 자연수 n에 대해 다음 작업을 반복하면 항상 1로

[Java] 프로그래머스 아이템 줍기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/87694# 코딩테스트 연습 - 아이템 줍기 지형은 각 변이 x축, y축과 평행한 직사각형이 겹쳐진 형태로 표현하며, 캐릭터는 이 다각형의 둘레(굵은 선)를 따라서 이동합니다. 만약 직사각형을 겹친 후 다음과 같이 중앙에 빈 공간이 생기는 경우, 다각형의 가장 바깥쪽 테두리가 캐릭터의 이동 경로가 됩니다. 단, 서로 다른 두 직사각형의 x축 좌표 또는 y축 좌표가 같은 경우는 없습니다. 즉, 위 그림처럼 서로 다른 두 직사각형이 꼭짓점에서 만나거나, 변이 겹치는 경우 등은 없습니다. 다음 그림과 같이 지형이 2개 이상으로 분리된 경우도 없습니다. 한 직사각형이 다른 직사각형 ... school.programmers.co.kr 문제 설명 다음과 같은 다각형 모양 지형에서 캐릭터가 아이템을 줍기 위해 이동하려 합니다. 지형은 각 변이 x축, y축과 평행한 직사각형이 겹쳐진 형태로 표현

[Java] 프로그래머스 최적의 행렬 곱셈 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12942 코딩테스트 연습 - 최적의 행렬 곱셈 크기가 a by b인 행렬과 크기가 b by c 인 행렬이 있을 때, 두 행렬을 곱하기 위해서는 총 a x b x c 번 곱셈해야합니다. 예를 들어서 크기가 5 by 3인 행렬과 크기가 3 by 2인 행렬을 곱할때는 총 5 x 3 x 2 = 30번의 곱하기 연산을 해야 합니다. 행렬이 2개일 때는 연산 횟수가 일정 하지만, 행렬의 개수가 3개 이상일 때는 연산의 순서에 따라서 곱하기 연산의 횟수가 바뀔 수 있습니다. 예를 들어서 크기가 5 by 3인 행렬 A, 크기가 3 by 10인 행렬 B, 크기가 10 by 6인 행렬 C가 있을... school.programmers.co.kr 문제 설명 크기가 a by b인 행렬과 크기가 b by c 인 행렬이 있을 때, 두 행렬을 곱하기 위해서는 총 a x b x c 번 곱셈해야합니다. 예를

[ Java] 백준 1991 트리 순회 [내부링크]

https://www.acmicpc.net/problem/1991 1991번: 트리 순회 1991번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 트리 순회 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 40093 26068 19869 66.058% 문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 ... www.acmicpc.net 문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은

[Java] 백준 11725 트리의 부모 찾기 [내부링크]

https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 11725번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 트리의 부모 찾기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 50764 22123 15829 42.104% 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모... www.acmicpc.net 문제 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개

[Java] 백준 1167 트리의 지름 [내부링크]

https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 1167번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 게시판 트리의 지름 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 35178 12776 9176 33.881% 문제 트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 트리의 지름을 구하는 프로그램을 작성하시오. 입력 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는... www.acmicpc.net 문제 트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 트리의 지름을 구하는 프로그램을 작성하시오. 입력 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V

[Java] 프로그래머스 3 x n 타일링 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12902 코딩테스트 연습 - 3 x n 타일링 타일을 가로로 배치 하는 경우 타일을 세로로 배치 하는 경우 예를들어서 n이 8인 직사각형은 다음과 같이 채울 수 있습니다. 직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 solution 함수를 완성해주세요. 제한사항 가로의 길이 n은 5,000이하의 자연수 입니다. 경우의 수가 많아 질 수 있으므로, 경우의 수를 1,000,000,007으로 나눈 나머지를 return해주세요. 입출력 예 n result 4 11 school.programmers.co.kr 문제 설명 가로 길이가 2이고 세로의 길이가 1인 직사각형 모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 3이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 다음과 같이 2가지 방

[Java] 프로그래머스 교점에 별 만들기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 교점에 별 만들기 Ax + By + C = 0 으로 표현할 수 있는 n 개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다. 예를 들어, 다음과 같은 직선 5개를 2x - y + 4 = 0 -2x - y + 4 = 0 -y + 1 = 0 5x - 8y - 12 = 0 5x + 8y + 12 = 0 좌표 평면 위에 그리면 아래 그림과 같습니다. 이때, 모든 교점의 좌표는 (4, 1) , (4, -4) , (-4, -4) , (-4, 1) , (0, 4) , (1.5, 1.0) , (2.1, -0.19) , (0, -1.5) ,... school.programmers.co.kr 문제 설명 Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다. 예를 들어, 다

[Java] 프로그래머스 110 옮기기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/77886 코딩테스트 연습 - 110 옮기기 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. x에 있는 "110"을 뽑아서, 임의의 위치에 다시 삽입합니다. 예를 들어, x = "11100" 일 때, 여기서 중앙에 있는 "110"을 뽑으면 x = "10" 이 됩니다. 뽑았던 "110"을 x의 맨 앞에 다시 삽입하면 x = "11010" 이 됩니다. 변형시킬 문자열 x가 여러 개 들어있는 문자열 배열 s 가 주어졌을 때, 각 문자열에 대해서 위의 행동으로 변형해서 만들 수 있는 문자열 중 사전... school.programmers.co.kr 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대해서, 당신은 다음과 같은 행동을 통해 x를 최대한 사전 순으로 앞에 오도록 만들고자 합니다. x에 있는 "

[Java] 프로그래머스 디펜스 게임 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/142085 코딩테스트 연습 - 디펜스 게임 준호는 요즘 디펜스 게임에 푹 빠져 있습니다. 디펜스 게임은 준호가 보유한 병사 n 명으로 연속되는 적의 공격을 순서대로 막는 게임입니다. 디펜스 게임은 다음과 같은 규칙으로 진행됩니다. 준호는 처음에 병사 n 명을 가지고 있습니다. 매 라운드마다 enemy[i] 마리의 적이 등장합니다. 남은 병사 중 enemy[i] 명 만큼 소모하여 enemy[i] 마리의 적을 막을 수 있습니다. 예를 들어 남은 병사가 7명이고, 적의 수가 2마리인 경우, 현재 라운드를 막으면 7 - 2 = 5명의 병사가 남습니다. 남은 병사의 수보다 현재 라운... school.programmers.co.kr 문제 설명 준호는 요즘 디펜스 게임에 푹 빠져 있습니다. 디펜스 게임은 준호가 보유한 병사 n명으로 연속되는 적의 공격을 순서대로 막는 게임입니다. 디펜스 게

[Java] 프로그래머스 [1차] 추석 트래픽 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/17676 코딩테스트 연습 - [1차] 추석 트래픽 이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결정하기 위해 작년 추석 기간인 9월 15일 로그 데이터를 분석한 후 초당 최대 처리량을 계산해보기로 했다. 초당 최대 처리량 은 요청의 응답 완료 여부에 관계없이 임의 시간부터 1초(=1,000밀리초)간 처리하는 요청의 최대 개수를 의미한다. 입력 형식 solution 함수에 전달되는 lines 배열은 N (1 ≦ N ≦ 2,000)개의 로그 문자열로 되어 있으며, 각 로그 문자열마다 요청에 대한 응답완료시... school.programmers.co.kr 문제 설명 추석 트래픽 이번 추석에도 시스템 장애가 없는 명절을 보내고 싶은 어피치는 서버를 증설해야 할지 고민이다. 장애 대비용 서버 증설 여부를 결

[Java] 프로그래머스 선입 선출 스케줄링 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12920 코딩테스트 연습 - 선입 선출 스케줄링 처리해야 할 동일한 작업이 n 개가 있고, 이를 처리하기 위한 CPU가 있습니다. 이 CPU는 다음과 같은 특징이 있습니다. CPU에는 여러 개의 코어가 있고, 코어별로 한 작업을 처리하는 시간이 다릅니다. 한 코어에서 작업이 끝나면 작업이 없는 코어가 바로 다음 작업을 수행합니다. 2개 이상의 코어가 남을 경우 앞의 코어부터 작업을 처리 합니다. 처리해야 될 작업의 개수 n과, 각 코어의 처리시간이 담긴 배열 cores 가 매개변수로 주어질 때, 마지막 작업을 처리하는 코어의 번호를 return 하는 solution 함수를 완성... school.programmers.co.kr 문제 설명 처리해야 할 동일한 작업이 n 개가 있고, 이를 처리하기 위한 CPU가 있습니다. 이 CPU는 다음과 같은 특징이 있습니다. CPU에는 여러 개

[Java] 프로그래머스 부대복귀 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/132266 코딩테스트 연습 - 부대복귀 강철부대의 각 부대원이 여러 지역에 뿔뿔이 흩어져 특수 임무를 수행 중입니다. 지도에서 강철부대가 위치한 지역을 포함한 각 지역은 유일한 번호로 구분되며, 두 지역 간의 길을 통과하는 데 걸리는 시간은 모두 1로 동일합니다. 임무를 수행한 각 부대원은 지도 정보를 이용하여 최단시간에 부대로 복귀하고자 합니다. 다만 적군의 방해로 인해, 임무의 시작 때와 다르게 되돌아오는 경로가 없어져 복귀가 불가능한 부대원도 있을 수 있습니다. 강철부대가 위치한 지역을 포함한 총지역의 수 n , 두 지역을 왕복할 수 있는 길 정보를 담은 2차원 정... school.programmers.co.kr 문제 설명 강철부대의 각 부대원이 여러 지역에 뿔뿔이 흩어져 특수 임무를 수행 중입니다. 지도에서 강철부대가 위치한 지역을 포함한 각 지역은 유일한 번호로 구분되

[Java] 백준 16922 로마 숫자 만들기 [내부링크]

https://www.acmicpc.net/problem/16922 16922번: 로마 숫자 만들기 16922번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 로마 숫자 만들기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 4162 2341 1855 55.094% 문제 로마 숫자에서는 수를 나타내기 위해서 I, V, X, L을 사용한다. 각 문자는 1, 5, 10, 50을 의미하고, 이 문제에서 다른 문자는 사용하지 않는다. 하나 또는 그 이상의 문자를 이용해서 수를 나타낼 수 있다. 문자열이 나타내는 값은, 각 문자가 의미하는 수를 모두 합한 값이다. 예를 들어, XXXV는 35, I... www.acmicpc.net 문제 로마 숫자에서는 수를 나타내기 위해서 I, V, X, L을 사용한다. 각 문자는 1, 5, 10, 50을 의미하고, 이 문제에서 다른 문자는 사용하지 않는다. 하나 또는 그 이상의 문자를 이용해서 수를 나타낼 수 있다

[Java] 프로그래머스 조이스틱 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. - 다음 알파벳 - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) - 커서를 오른쪽으로 이동 (마지막 위치에서 오른쪽으로 이동하면 첫 번째 문자에 커서) 예를 들어 아래의 방법으로 "JAZ"를 만들 수 있습니다. - 첫 번째 위치에서 조이스틱... school.programmers.co.kr 문제 설명 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각

[Java] 프로그래머스 파괴되지 않은 건물 (누적합 구하는 법) [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 N x M 크기의 행렬 모양의 게임 맵이 있습니다. 이 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있습니다. 적은 이 건물들을 공격하여 파괴하려고 합니다. 건물은 적의 공격을 받으면 내구도가 감소하고 내구도가 0이하가 되면 파괴됩니다. 반대로, 아군은 회복 스킬을 사용하여 건물들의 내구도를 높이려고 합니다. 적의 공격과 아군의 회복 스킬은 항상 직사각형 모양입니다. 예를 들어, 아래 사진은 크기가 4 x 5인 맵에 내구도가 5인 건물들이 있는 상태입니다. 첫 번째로 적이 맵의 (0,0)부터 (3,4)까지 공격하여 4만큼 건물의 ... school.programmers.co.kr 문제 설명 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] N x M 크기의 행렬 모양의 게임 맵이 있습니다. 이 맵에는

[Java] 프로그래머스 N-Queen [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다. 체스판의 가로 세로의 세로의 길이 n이 매개변수로 주어질 때, n개의 퀸이 조건에 만족 하도록 배치할 수 있는 방법의 수를 return하는 solution함수를 완성해주세요. 제한사항 퀸(Queen)은 가로, 세로, 대각선으로 이동할 수 있습니다. n은 12이하의 자연수 입니다. 입출력 예 n resul... school.programmers.co.kr 문제 설명 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이

[Java] 백준 17088 등차수열 변환 [내부링크]

https://www.acmicpc.net/problem/17088 17088번: 등차수열 변환 17088번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 등차수열 변환 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 1322 595 470 44.423% 문제 크기가 N인 수열 A = [A 1 , A 2 , ..., A N ]이 있을 때, 모든 1 ≤ i < N에 대해서, A i+1 -A i 가 모두 일치하면 등차수열이라고 한다. 예를 들어, [3], [6, 6, 6], [2, 8, 14, 20], [6, 4, 2]는 등차수열이고, [4, 5, 4], [6, 3, 1]은 등차수열이 아... www.acmicpc.net 문제 크기가 N인 수열 A = [A1, A2, ..., AN]이 있을 때, 모든 1 ≤ i < N에 대해서, Ai+1-Ai가 모두 일치하면 등차수열이라고 한다. 예를 들어, [3], [6, 6, 6], [2, 8, 14, 20

[Java] 프로그래머스 혼자 놀기의 달인 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/131130# 코딩테스트 연습 - 혼자 놀기의 달인 혼자서도 잘 노는 범희는 어느 날 방구석에 있는 숫자 카드 더미를 보더니 혼자 할 수 있는 재미있는 게임을 생각해냈습니다. 숫자 카드 더미에는 카드가 총 100장 있으며, 각 카드에는 1부터 100까지 숫자가 하나씩 적혀있습니다. 2 이상 100 이하의 자연수를 하나 정해 그 수보다 작거나 같은 숫자 카드들을 준비하고, 준비한 카드의 수만큼 작은 상자를 준비하면 게임을 시작할 수 있으며 게임 방법은 다음과 같습니다. 준비된 상자에 카드를 한 장씩 넣고, 상자를 무작위로 섞어 일렬로 나열합니다. 상자가 일렬로 나열되면 상자가 나열된 ... school.programmers.co.kr 문제 설명 혼자서도 잘 노는 범희는 어느 날 방구석에 있는 숫자 카드 더미를 보더니 혼자 할 수 있는 재미있는 게임을 생각해냈습니다. 숫자 카드 더미에

[Java] 백준 2422 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 [내부링크]

https://www.acmicpc.net/problem/2422 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 2422번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 8537 3390 2540 39.644% 문제 한윤정과 친구들은 이탈리아로 방학 여행을 갔다. 이탈리아는 덥다. 윤정이와 친구들은 아이스크림을 사먹기로 했다. 아이스크림 가게에는 N종류의 아이스크림이 있다. 모든 아이스크림은 1부터 N까지 번호가 매겨져있다. 어떤 종류의 아이스크림을 함께먹으면, 맛이 아주 형편없어진다. 따라서 윤정이... www.acmicpc.net 문제 한윤정과 친구들은 이탈리아로 방학 여행을 갔다. 이탈리아는 덥다. 윤정이와 친구들은 아이스크림을 사먹기로 했다. 아이스크림 가게에는 N종류의 아이스크림이 있다. 모든 아이스크림은 1부터 N까지

[Java] 프로그래머스 점 찍기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/140107 코딩테스트 연습 - 점 찍기 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k , d 가 주어질 때 다음과 같이 점을 찍으려 합니다. 원점(0, 0)으로부터 x축 방향으로 a*k (a = 0, 1, 2, 3 ...), y축 방향으로 b*k (b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다. 원점과 거리가 d 를 넘는 위치에는 점을 찍지 않습니다. 예를 들어, k 가 2, d 가 4인 경우에는 (0, 0), (0, 2), (0, 4), (2, 0), (2, 2), (4,... school.programmers.co.kr 문제 설명 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 진수는 두 양의 정수 k, d가 주어질 때 다음과 같

[Java] 백준 15686 치킨 배달 [내부링크]

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 " 치킨 거리 "라는 말을 주로 사용한다. 치킨 거리 는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리 를 가지고 있다. 도... www.acmicpc.net 문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부

[Java] 백준 16968 차량 번호판 1 [내부링크]

https://www.acmicpc.net/problem/16968 16968번: 차량 번호판 1 16968번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 차량 번호판 1 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 3419 2078 1646 59.768% 문제 상도시의 차량 번호판 형식이 주어졌을 때, 가능한 차량 번호판의 개수를 구해보자. 번호판에 사용할 수 있는 숫자는 0, 1, 2, ..., 8, 9이다. 사용할 수 있는 문자는 a, b, c, d, ..., y, z이다. 차량 번호판의 형식은 최대 4글자이고, c와 d로 이루어진 문자열로 나타낼 수 있다. c는 문자가 위치... www.acmicpc.net 문제 상도시의 차량 번호판 형식이 주어졌을 때, 가능한 차량 번호판의 개수를 구해보자. 번호판에 사용할 수 있는 숫자는 0, 1, 2, ..., 8, 9이다. 사용할 수 있는 문자는 a, b, c, d, ..., y, z이다

[Java] 백준 16917 양념 반 후라이드 반 [내부링크]

https://www.acmicpc.net/problem/16917 16917번: 양념 반 후라이드 반 16917번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 양념 반 후라이드 반 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 3427 1988 1633 59.060% 문제 현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념 치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은 A원, 후라이드 치킨 한 마리의 가격은 B원, 반반 치킨 한 마리의 가격은 C원이다. 상도는 오늘 파티를 위해 양념 치킨 최소 ... www.acmicpc.net 문제 현진 치킨에서 판매하는 치킨은 양념 치킨, 후라이드 치킨, 반반 치킨으로 총 세 종류이다. 반반 치킨은 절반은 양념 치킨, 절반은 후라이드 치킨으로 이루어져있다. 양념 치킨 한 마리의 가격은 A원, 후라이드 치킨

[Java] 백준 16943 숫자 재배치 [내부링크]

https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 16943번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 숫자 재배치 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 2647 1248 941 44.959% 문제 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0으로 시작하면 안 된다. 입력 첫째 줄에 두 정수 A와 B가 주어진다. 출력 B보다 작은 C중에서 가장 큰 값을 출력... www.acmicpc.net 문제 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0으로 시작하면

[Java] 프로그래머스 길 찾기 게임 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42892# 코딩테스트 연습 - 길 찾기 게임 길 찾기 게임 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다. 라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다. 그냥 지도를 주고 게임을 시작하면 재미가 덜해지므로, 라이언은 방문할 곳의 2차원 좌표 값을 구하고 각 장소를 이진트리의 노드가 되... school.programmers.co.kr 문제 설명 길 찾기 게임 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다. 내친김에 여행 계획까지 구상하던 라이언은 재미있

[Java] 프로그래머스 숫자 카드 나누기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/135807 코딩테스트 연습 - 숫자 카드 나누기 철수와 영희는 선생님으로부터 숫자가 하나씩 적힌 카드들을 절반씩 나눠서 가진 후, 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a 의 값을 구하려고 합니다. 철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 예를 들어, 카드들에 10, 5, 20, 17이 적혀 있는 경우에 대해 생각해 봅시다. 만약, 철수가 [... school.programmers.co.kr 문제 설명 철수와 영희는 선생님으로부터 숫자가 하나씩 적힌 카드들을 절반씩 나눠서 가진 후, 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a의

[Java] 프로그래머스 숫자 블록 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12923 코딩테스트 연습 - 숫자 블록 그렙시에는 0으로 된 도로에 숫자 블록을 설치하기로 하였습니다. 숫자 블록의 규칙은 다음과 같습니다. 블록의 번호가 n 일 때, 가장 처음 블록은 n * 2번째 위치에 설치합니다. 그다음은 n * 3, 그다음은 n * 4, ...로 진행합니다.만약 기존에 블록이 깔려있는 자리라면 그 블록을빼고 새로운 블록으로 집어넣습니다. 예를 들어 1번 블록은 2,3,4,5, ... 인 위치에 우선 설치합니다. 그다음 2번 블록은 4,6,8,10, ... 인 위치에 설치하고, 3번 블록은 6,9,12... 인 위치에 설치합니다. 이렇게 3번 블록... school.programmers.co.kr 문제 설명 그렙시에는 0으로 된 도로에 숫자 블록을 설치하기로 하였습니다. 숫자 블록의 규칙은 다음과 같습니다. 블록의 번호가 n 일 때, 가장 처음 블록은 n

[Java] 백준 2210 숫자판 점프 [내부링크]

https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 2210번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 숫자판 점프 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 6903 5130 4069 74.991% 문제 5×5 크기의 숫자판이 있다. 각각의 칸에는 숫자(digit, 0부터 9까지)가 적혀 있다. 이 숫자판의 임의의 위치에서 시작해서, 인접해 있는 네 방향으로 다섯 번 이동하면서, 각 칸에 적혀있는 숫자를 차례로 붙이면 6자리의 수가 된다. 이동을 할 때에는 한 번 거쳤던 칸을 다시 거쳐도 되며, 0으로 시작하는 000123과 같... www.acmicpc.net 문제 5×5 크기의 숫자판이 있다. 각각의 칸에는 숫자(digit, 0부터 9까지)가 적혀 있다. 이 숫자판의 임의의 위치에서 시작해서, 인접해 있는 네 방향으로 다섯 번 이동하면서, 각 칸에 적혀있는 숫자를 차례로 붙이면 6자리의

[Java] 백준 17089 세 친구 [내부링크]

https://www.acmicpc.net/problem/17089 17089번: 세 친구 17089번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 세 친구 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 1247 591 430 45.940% 문제 N명의 사람이 있고, 여기서 세 사람 A, B, C를 고르려고 한다. 세 사람은 모두 친구여야 한다. 세 사람을 고르는 방법은 매우 많이 있을 수 있다. 이때, A의 친구 수 + B의 친구 수 + C의 친구 수가 최소가 되어야 한다. 친구 수의 합을 계산할 때, 세 사람은 빼고 계산해야 한다. 즉, A의 친구 수를 계산할 때, B와 ... www.acmicpc.net 문제 N명의 사람이 있고, 여기서 세 사람 A, B, C를 고르려고 한다. 세 사람은 모두 친구여야 한다. 세 사람을 고르는 방법은 매우 많이 있을 수 있다. 이때, A의 친구 수 + B의 친구 수 + C의 친구 수가 최소가 되어야

[Java] 프로그래머스 풍선 터트리기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 임의의 인접한 두 풍선을 고른 뒤, 두 풍선 중 하나를 터트립니다. 터진 풍선으로 인해 풍선들 사이에 빈 공간이 생겼다면, 빈 공간이 없도록 풍선들을 중앙으로 밀착시킵니다. 여기서 조건이 있습니다. 인접한 두 풍선 중에서 번호가 더 작은 풍선 을 터트리는 행위는 최대 1번만 할 수 있습니다. 즉, 어떤 시점에서 인접한 두 풍선 중 번호가 더 작은 풍선을 터트렸다면, 그 이후에는 인접한 두 풍선을 고른 뒤 번호가 더 큰 풍선만을 터트릴 수 있습니다. 당신은 어떤 풍선이 최후까지 남을 수 있는지 알아보고 싶습니다. 위에 서술된 조건대로... school.programmers.co.kr 문제 설명 일렬로 나열된 n개의 풍선이 있습니다. 모든 풍선에는 서로 다른 숫자가 써져 있습니다. 당신은 다음 과정을 반복하면서 풍선들을 단 1개만 남을 때까

[Java] 프로그래머스 셔틀버스 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 셔틀버스 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은 크루들이 이 셔틀을 이용하여 출근한다. 이 문제에서는 편의를 위해 셔틀은 다음과 같은 규칙으로 운행한다고 가정하자. 셔틀은 09:00 부터 총 n 회 t 분 간격으로 역에 도착하며, 하나의 셔틀에는 최대 m 명의 승객이 탈 수 있다. 셔틀은 도착했을 때 도착한 순간에 대기열에 선 크루까지 포함해서 대기 순서대로 태우고 바로 출발한다. 예를 들어 09:00 에 도착한 셔틀은 자리가... school.programmers.co.kr 셔틀버스 카카오에서는 무료 셔틀버스를 운행하기 때문에 판교역에서 편하게 사무실로 올 수 있다. 카카오의 직원은 서로를 '크루'라고 부르는데, 아침마다 많은

[Java] 가장 큰 정사각형 찾기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12905 코딩테스트 연습 - 가장 큰 정사각형 찾기 1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사각형을 찾아 넓이를 return 하는 solution 함수를 완성해 주세요. (단, 정사각형이란 축에 평행한 정사각형을 말합니다.) 예를 들어 1 2 3 4 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 가 있다면 가장 큰 정사각형은 1 2 3 4 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 가 되며 넓이는 9가 되므로 9를 반환해 주면 됩니다. 제한사항 표(board)는 ... school.programmers.co.kr 문제 설명 1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사

[Java] 프로그래머스 문자열 나누기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/140108# 코딩테스트 연습 - 문자열 나누기 문자열 s 가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. s 에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다. 만약 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없다면, 역시 지금까지 읽은 문자열을 분리하... school.programmers.co.kr 문제 설명 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다

[Java] 프로그래머스 햄버거 만들기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/133502# 코딩테스트 연습 - 햄버거 만들기 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지... school.programmers.co.kr 문제 설명 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로

[Java] 프로그래머스 거스름돈 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5원을 거슬러 줘야 하고 1원, 2원, 5원이 있다면 다음과 같이 4가지 방법으로 5원을 거슬러 줄 수 있습니다. 1원을 5개 사용해서 거슬러 준다. 1원을 3개 사용하고, 2원을 1개 사용해서 거슬러 준다. 1원을 1개 사용하고, 2원을 2개 사용해서 거슬러 준다. 5원을 1개 사용해서 거슬러 준다. 거슬러 줘야 하는 금액 n과 Finn이... school.programmers.co.kr 문제 설명 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를

[Java] 프로그래머스 옹알이(2) [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/133499 코딩테스트 연습 - 옹알이 (2) 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling 이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling 의 길이 ≤ 100 1 ≤ babbling[i] 의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다... school.programmers.co.kr 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을

[Java] 프로그래머스 기사단원의 무기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/136798 코딩테스트 연습 - 기사단원의 무기 숫자나라 기사단의 각 기사에게는 1번부터 number 까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이... school.programmers.co.kr 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자

[Java] 프로그래머스 하노이의 탑 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12946 코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다. 한 번에 하나의 원판만 옮길 수 있습니다. 큰 원판이 작은 원판 위에 있어서는 안됩니다. 하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하겠습니다. 1번에는 n개... school.programmers.co.kr 문제 설명 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기

[Java] 프로그래머스 택배상자 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/131704 코딩테스트 연습 - 택배상자 영재는 택배상자를 트럭에 싣는 일을 합니다. 영재가 실어야 하는 택배상자는 크기가 모두 같으며 1번 상자부터 n번 상자까지 번호가 증가하는 순서대로 컨테이너 벨트에 일렬로 놓여 영재에게 전달됩니다. 컨테이너 벨트는 한 방향으로만 진행이 가능해서 벨트에 놓인 순서대로(1번 상자부터) 상자를 내릴 수 있습니다. 하지만 컨테이너 벨트에 놓인 순서대로 택배상자를 내려 바로 트럭에 싣게 되면 택배 기사님이 배달하는 순서와 택배상자가 실려 있는 순서가 맞지 않아 배달에 차질이 생깁니다. 따라서 택배 기사님이 미리 알려준 순서에 맞게 영재가 택... school.programmers.co.kr 문제 설명 영재는 택배상자를 트럭에 싣는 일을 합니다. 영재가 실어야 하는 택배상자는 크기가 모두 같으며 1번 상자부터 n번 상자까지 번호가 증가하는 순서대로 컨

[Java] 프로그래머스 다단계 칫솔 판매 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, 조직을 운영하던 민호는 조직 내 누가 얼마만큼의 이득을 가져갔는지가 궁금해졌습니다. 예를 들어, 민호가 운영하고 있는 다단계 칫솔 판매 조직이 아래 그림과 같다고 합시다. 민호는 center이며, 파란색 네모는 여덟 명의 판매원을 표시한 것입니다. 각각은 자신을 조직에 참여시킨 추천인에 연결되어 피라미드 식의 구조를 이루고 있습니다. 조직의 이익 분배 ... school.programmers.co.kr 문제 설명 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망

[Java] 프로그래머스 가장 긴 팰린드롬 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12904 코딩테스트 연습 - 가장 긴 팰린드롬 문제 설명 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다. 제한사항 문자열 s의 길이 : 2,500 이하의 자연수 문자열 s는 알파벳 소문자로만 구성 입출력 예 s answer "abcdcba" 7 "abacde" 3 입출력 예 설명 입출력 예 #1 ... school.programmers.co.kr 문제 설명 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장

[Java] 프로그래머스 단속카메라 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다. 고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요. 제한사항 차량의 대수는 1대 이상 10,000대 이하입니다. routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 지점, routes[i][1]... school.programmers.co.kr 문제 설명 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다. 고속도로를 이동하는 차량의 경로 r

[Java] HashMap key, value 정렬 [내부링크]

import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Map<Integer, Integer> map = new HashMap<>(); map.put(4, 1); map.put(3, 2); map.put(5, 3); map.put(1, 4); map.put(8, 5); map.put(7, 6); map.put(2, 7); map.put(6, 8); List<Integer> klist = new ArrayList<>(map.keySet()); // key 정렬 Collections.sort(klist); // key 기준 오름차순 정렬 Collections.sort(klist, Collections.reverseOrder()); // key 기준 내림차순 정렬 // value 정렬 Collections.sort(klist, (k1,

[Java] 프로그래머스 과일 장수 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/135808 코딩테스트 연습 - 과일 장수 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, ... school.programmers.co.kr 문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입

[Java] 프로그래머스 멀쩡한 사각형 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm ×... school.programmers.co.kr 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든

[Java] 프로그래머스 롤케이크 자르기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/132265 코딩테스트 연습 - 롤케이크 자르기 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다. 예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 1, 2, 3, 4와 같이 번호로... school.programmers.co.kr 문제 설명 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와

[Java] 프로그래머스 성격 유형 검사하기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/118666 코딩테스트 연습 - 성격 유형 검사하기 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n 개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 비동의 비동의 약간 비동의 모르겠음 약간 동의 동의 매우 동의 school.programmers.co.kr 문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번

[Java] 프로그래머스 124 나라의 숫자 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를... school.programmers.co.kr 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니

[Java] 프로그래머스 소수 찾기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "1... school.programmers.co.kr 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가

[Java] 프로그래머스 할인 행사 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/131127 코딩테스트 연습 - 할인 행사 XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다. 예를 들어, 정현이가 원하는 제품이 바나나 3개, 사과 2개, 쌀 2개, 돼지고기 2개, 냄비 1개이며, XYZ 마트에서 15일간 회원을 대상으로 할인하는 제품이 날짜 순서대로 치킨, 사과, 사과, 바나나... school.programmers.co.kr 문제 설명 XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합

[Java] 프로그래머스 키패드 누르기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/67256# 코딩테스트 연습 - 키패드 누르기 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1 , 4 , 7 을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3 , 6 , 9 를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2 ,... school.programmers.co.kr 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려

[Java] 프로그래머스 땅따먹기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 ... school.programmers.co.kr 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며

[Java] 프로그래머스 방문 길이 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, "ULURRDLLU"로 명령했다면 1번 명령어부터 7번 명령어까지 다음과 같이 움직입니다. 8번 명령어부터 9번 명령어까지 다음과 같이 움직입... school.programmers.co.kr 문제 설명 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로

[Java] 프로그래머스 네트워크 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨... school.programmers.co.kr 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B

[Java] 프로그래머스 2개 이하로 다른 비트 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/77885# 코딩테스트 연습 - 2개 이하로 다른 비트 양의 정수 x 에 대한 함수 f(x) 를 다음과 같이 정의합니다. x 보다 크고 x 와 비트가 1~2개 다른 수들 중에서 제일 작은 수 예를 들어, f(2) = 3 입니다. 다음 표와 같이 2보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 3이기 때문입니다. 수 비트 다른 비트의 개수 2 000...0010 3 000...0011 1 f(7) = 11 입니다. 다음 표와 같이 7보다 큰 수들 중에서 비트가 다른 지점이 2개 이하이면서 제일 작은 수가 11이기 때문입니다. 수 비트 다른 비트의 개수 7 000... school.programmers.co.kr 문제 설명 양의 정수 x에 대한 함수 f(x)를 다음과 같이 정의합니다. x보다 크고 x와 비트가 1~2개 다른 수들 중에서 제일 작은 수 예를 들

[Java] 프로그래머스 2 X n 타일링 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 다음과 같이 2가지 방법이 있습니다. 타일을 가로로 배치 하는 경우 타일을 세로로 배치 하는 경우 예를들어서 n이 7인 직사각형은 다음과 같이 채울 수 있습니다. 직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 solution 함수를 완성해주세요. 제한사항 가로의 길이 n은 60,000이하의... school.programmers.co.kr 문제 설명 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바

[Java] 프로그래머스 큰 수 만들기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19, 12, 14, 92, 94, 24] 를 만들 수 있습니다. 이 중 가장 큰 숫자는 94 입니다. 문자열 형식으로 숫자 number와 제거할 수의 개수 k가 solution 함수의 매개변수로 주어집니다. number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자를 문자열 형태로 return 하도록 solution 함수를 완성하세요. 제한 조건 number는 2... school.programmers.co.kr 문제 설명 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다. 예를 들어, 숫자 1924에서 수 두 개를 제거하면 [19,

[Java] 프로그래머스 괄호 회전하기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/76502# 코딩테스트 연습 - 괄호 회전하기 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. () , [] , {} 는 모두 올바른 괄호 문자열입니다. 만약 A 가 올바른 괄호 문자열이라면, (A) , [A] , {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A , B 가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어, {} 와 ([]) 가 올바른 괄호 문자열이므로, {}([]) 도 올바른 괄호 문자열입니다. 대괄호, 중괄호, 그리고 소괄호로 이루어... school.programmers.co.kr 문제 설명 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. (), [], {} 는 모두 올바른 괄호 문자열입니다. 만약 A가 올바른 괄호

[Java] 프로그래머스 n^2 배열 자르기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/87390 코딩테스트 연습 - n^2 배열 자르기 정수 n , left , right 가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n 행 n 열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n 에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i 행 i 열까지의 영역 내의 모든 빈 칸을 숫자 i 로 채웁니다. 1행, 2행, ..., n 행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr 이라 할 때, arr[left] , arr[left+1] , ..., arr[right] 만 남기고 나머지... school.programmers.co.kr 문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만

[Java] 프로그래머스 프린터 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, ... school.programmers.co.kr 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높

[Java] 프로그래머스 야근 지수 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 제한 사항 works 는 길이 1 이상, 20,000 이하인 배열입니다. works 의 원소는 50000... school.programmers.co.kr 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한

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

https://school.programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어... school.programmers.co.kr 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌

[Java] 프로그래머스 주식가격 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42584# 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 입출력 예 설명 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점... school.programmers.co.kr 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solutio

[Java] 프로그래머스 폰켓몬 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 ... school.programmers.co.kr 문제 설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/

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

https://school.programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.... school.programmers.co.kr 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다

[Java] 자바 프로그래머스 16954 움직이는 미로 탈출 [내부링크]

https://www.acmicpc.net/problem/16954 16954번: 움직이는 미로 탈출 문제 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 윗 칸으로 이동해야 한다. 이 게임의 특징은 벽이 움직인다는 점이다. 1초마다 모든 벽이 아래에 있는 행으로 한 칸씩 내려가고, 가장 아래에 있어서 아래에 행이 없다면 벽이 사라지게 된다. 욱제의 캐릭터는 1초에 인접한 한 칸 또는 대각선 방향으로 인접한 한 칸으로 이동하거나, 현재 위치에 서 있을 수 있다. 이동할 때는 빈 칸으로만 이... www.acmicpc.net 문제 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 윗 칸으로 이동해야 한

[Java] 프로그래머스 소수 만들기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1,2,3,4] 1 [1,2,7,6,4] 4 입출... school.programmers.co.kr 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums

[Java] 프로그래머스 정수 삼각형 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의... school.programmers.co.kr 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방

[Java] 프로그래머스 이중우선순위큐 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원... school.programmers.co.kr 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최

[Java] 프로그래머스 최고의 집합 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12938# 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합 예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다. { 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 } 그중 각 원소의 곱이 최대인 { 4, 5 }가 최고의 집합입니다. 집합의 원소의 개수 n과 모든 원소들의 합 s가 매개... school.programmers.co.kr 문제 설명 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고

[Java] 프로그래머스 캐시 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/17680 코딩테스트 연습 - [1차] 캐시 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효... school.programmers.co.kr 문제 설명 캐시 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발

[Java] 프로그래머스 점프와 순간 이동 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 ... school.programmers.co.kr 문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진

[Java] 백준 16948 데스 나이트 [내부링크]

https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 16948번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 데스 나이트 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 4683 3198 2677 68.995% 문제 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크기가 N×N인 체스판과 두 칸 (r 1 , c 1 ), (r ... www.acmicpc.net 문제 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1)

[Java] 백준 2206 벽 부수고 이동하기 [내부링크]

https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 2206번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 벽 부수고 이동하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 192 MB 97378 24227 15111 22.705% 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝... www.acmicpc.net 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하

[Java] 프로그래머스 2016년 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)... school.programmers.co.kr 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는

[Java] 프로그래머스 튜플 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복... school.programmers.co.kr 문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이

[Java] 프로그래머스 N개의 최소공배수 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 ar... school.programmers.co.kr 문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2

[Java] 프로그래머스 예상 대진표 (추가 테스트케이스) [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12985# 코딩테스트 연습 - 예상 대진표 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음... school.programmers.co.kr 문제 설명 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리

[Java] 프로그래머스 멀리 뛰기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.... school.programmers.co.kr 문제 설명 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸,

[Java] 프로그래머스 행렬의 곱셈 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 문제 설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. 입출력 예 arr1 arr2 return [[1, 4], [3, 2], [4, 1]] [[3, 3], [3, 3]] [[15, 15], [15, 15], [15, 15]] [[2, 3, 2], [4, 2, 4... school.programmers.co.kr 문제 설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr

[Java] 프로그래머스 짝지어 제거하기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12973#qna 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa →... school.programmers.co.kr 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그

[Java] 프로그래머스 구명보트 (추가 테스트케이스) [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명 씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명... school.programmers.co.kr 구명보트 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다

[Java] 프로그래머스 다음 큰 숫자 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,0... school.programmers.co.kr 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n

[Java] 프로그래머스 시저 암호 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12926# 코딩테스트 연습 - 시저 암호 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 입출력 ... school.programmers.co.kr 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"

[Java] 프로그래머스 카펫 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,... school.programmers.co.kr 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으

[Java] 프로그래머스 문자열 내 마음대로 정렬하기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다... school.programmers.co.kr 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다

[Java] 프로그래머스 두 개 뽑아서 더하기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 입출력 예 설명 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers... school.programmers.co.kr 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에

[Java] 프로그래머스 비밀지도 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n 인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서... school.programmers.co.kr 문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인

[Java] 프로그래머스 영어 끝말잇기 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → moth... school.programmers.co.kr 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대

[Java] 백준 11722 가장 긴 감소하는 부분 수열 [내부링크]

https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 11722번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 가장 긴 감소하는 부분 수열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 23986 15173 12349 64.227% 문제 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30 , 10, 20 , 20, 10 } 이고, 길이는 3이다. 입력 첫째 줄에 수열 A의 ... www.acmicpc.net 문제 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {1

[Java] 백준 11054 가장 긴 바이토닉 부분 수열 [내부링크]

https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 11054번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 가장 긴 바이토닉 부분 수열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 37083 18908 14783 50.811% 문제 수열 S가 어떤 수 S k 를 기준으로 S 1 < S 2 < ... S k-1 < S k > S k+1 > ... S N-1 > S N 을 만족한다면, 그 수열을 바이토닉 수열이라고 한다. 예를 들어, {10, 20, 30 , 25, 20}과 {10, 20, 30, 40 }, { 50 , 40, 25, 1... www.acmicpc.net 문제 수열 S가 어떤 수 Sk를 기준으로 S1 < S2 < ... Sk-1 < Sk > Sk+1 > ... SN-1 > SN을 만족한다면, 그 수열을 바이토닉 수열이라고 한다. 예를 들어, {10, 20, 30,

[Java] 백준 13398 연속합 2 [내부링크]

https://www.acmicpc.net/problem/13398 13398번: 연속합 2 13398번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 연속합 2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 15816 4686 3449 29.259% 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 또, 수열에서 수를 하나 제거할 수 있다. (제거하지 않아도 된다) 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1... www.acmicpc.net 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 또, 수열에서 수를 하나 제거할 수 있다

[Java] 이코테 못생긴 수 [내부링크]

못생긴 수란 오직 2, 3, 5만을 소인수로 가지는 수를 의미합니다 다시 말해 오직 2, 3, 5를 약수로 가지는 합성수를 의미합니다. 1은 못생긴 수라고 가정합니다. 따라서 못생긴 수들은 {1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...} 순으로 이어지게 됩니다. 이때 n번째 못생긴 수를 찾는 프로그램을 작성하세요. 예를 들어 11번째 못생긴 수는 15입니다. 입력 조건 : 첫째 줄에 n이 입력됩니다. (1 <= n <= 1000) 출력 조건 : n 번째 못생긴 수를 출력합니다. 입력 예시 1 : 10 출력 예시 1: 12 입력 예시 2 : 4 출력 예시 2 : 4 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n + 1];

[Java] 백준 11404 플로이드 [내부링크]

https://www.acmicpc.net/problem/11404 11404번: 플로이드 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정... www.acmicpc.net 문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에

[Java] 이코테 정확한 순위 [내부링크]

선생님은 시험을 본 학생 N명의 성적을 분실하고, 성적을 비교한 결과의 일부만 가지고 있습니다. 학생 N명의 성적은 모두 다륻데, 다음은 6명의 학생에 대하여 6번만 성적을 비교한 결과 입니다. 1번 학생 성적 < 5번 학생 성적 3번 학생 성적 < 4번 학생 성적 4번 학생 성적 < 2번 학생 성적 4번 학생 성적 < 6번 학생 성적 5번 학생 성적 < 2번 학생 성적 5번 학생 성적 < 4번 학생 성적 A번 학생의 성적의 성적이 B번 학생보다 낮다면 화살표가 A에서 B를 가리키도록 할 때 위의 성적 결과를 다음 그림처럼 표현힐 수 있습니다. 이 그림으로 유추해서 순위를 정확히 알 수 있는 학생도 있고, 알 수 없는 학생도 있습니다. 예를 들어 1번 학생은 5번 학생보다 성적이낮고, 5번 학생은 4번 학생보다 성적이 낮으므로 1번 학생은 4번 학생보다 성적이 낮습니다. 따라서 1번, 3번, 5번 학생은 모두 4번 학생보다 성적이 낮다고 볼 수 있습니다. 그리고 4번 학생은 2번 학

[Java] 프로그래머스 예산 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budg... school.programmers.co.kr 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든

[Java] 백준 1309 동물원 [내부링크]

https://www.acmicpc.net/problem/1309 1309번: 동물원 1309번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 동물원 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 23044 11491 9049 47.970% 문제 어떤 동물원에 가로로 두칸 세로로 N칸인 아래와 같은 우리가 있다. 이 동물원에는 사자들이 살고 있는데 사자들을 우리에 가둘 때, 가로로도 세로로도 붙어 있게 배치할 수는 없다. 이 동물원 조련사는 사자들의 배치 문제 때문에 골머리를 앓고 있다. 동물원 조련사의 머리가 아프지 않도록 우리가 2*N 배열에 사자를 배치하는 경우의 수... www.acmicpc.net 문제 어떤 동물원에 가로로 두칸 세로로 N칸인 아래와 같은 우리가 있다. 이 동물원에는 사자들이 살고 있는데 사자들을 우리에 가둘 때, 가로로도 세로로도 붙어 있게 배치할 수는 없다. 이 동물원 조련사는 사자들의 배치 문제 때문에 골머리

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

https://www.acmicpc.net/problem/11057 11057번: 오르막 수 11057번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 오르막 수 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 40718 19835 15307 47.469% 문제 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 ... www.acmicpc.net 문제 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다.

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

https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 1932번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 정수 삼각형 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 66550 37580 28218 58.790% 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하... www.acmicpc.net 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는

[Java] 이코테 금광 [내부링크]

n x m 크기의 금광이 있습니다. 금광은 1x 1 크기의 칸으로 나누어져 있으며, 각 칸은 특정한 크기의 금이 들어 있습니다. 채굴자는 첫 번째 열부터 출발하여 금을 캐기 시작합니다. 맨 처음은 첫 번째 열의 어느 행에서든 출발할 수 있습니다. 이후에 n번에 걸쳐서 매번 오른쪽 위 오른쪽 오른쪽 아래 3가지 중 하나의 위치로 이동해야 합니다. 결과적으로 채굴자가 얻을 수 있는 금의 최대 크기를 출력하는 프로그램을 작성하세요. 만약 다음과 같이 3 x 4 크기의 금광이 존재한다고 가정합시다. 1 3 3 2 2 1 4 1 0 6 4 7 가장 왼쪽 위의 위치를 (1, 1) 가장 오른 쪽 아래의 위치를 (n, m)이라고 할 때, 위 예시에서는 (2, 1) -> (3, 2) -> (3, 3) -> (3, 4)의 위치로 이동하면 총 19만큼의 금을 채굴할 수 있으며, 이때의 값이 최댓값입니다. 입력 조건 : 첫째 줄에 테스트 켕스 T가 입력됩니다. (1 <= T <= 1000) 매 테슽트 케

[Java] 백준 14501 퇴사 [내부링크]

https://www.acmicpc.net/problem/14501 14501번: 퇴사 문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 T i 와 상담을 했을 때 받을 수 있는 금액 P i 로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일 2일 3일 4일 5일 6일 7일 T i 3 5 1 1 2 4 2 P i 10 20... www.acmicpc.net 문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에

[Java] 백준 18353 병사 배치하기 [내부링크]

https://www.acmicpc.net/problem/18353 18353번: 병사 배치하기 18353번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 병사 배치하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 5811 2302 1757 41.273% 문제 N 명의 병사가 무작위로 나열되어 있다. 각 병사는 특정한 값의 전투력을 보유하고 있으며, 병사를 배치할 때는 전투력이 높은 병사가 앞쪽에 오도록 내림차순으로 배치를 하고자 한다. 다시 말해 앞쪽에 있는 병사의 전투력이 항상 뒤쪽에 있는 병사보다 높아야 한다. 또한 배치 과정에서는 특정한 위치에 있는 병사를 열외시키는 방법을 이용... www.acmicpc.net 문제 N명의 병사가 무작위로 나열되어 있다. 각 병사는 특정한 값의 전투력을 보유하고 있으며, 병사를 배치할 때는 전투력이 높은 병사가 앞쪽에 오도록 내림차순으로 배치를 하고자 한다. 다시 말해 앞쪽에 있는 병사의 전투력이 항

[Java] 백준 11055 가장 큰 증가 부분 수열 [내부링크]

https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 11055번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 가장 큰 증가 부분 수열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 36717 16702 13260 45.176% 문제 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수열은 A = { 1 , 100, 2 , 50 , 60 , 3, 5, 6, 7... www.acmicpc.net 문제 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합

[Java] 불량 사용자 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/64064?language=java 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 사용자 라는 이름으로 목록을 만들어서 당첨 처리 시 제외하도록 이벤트 당첨자 담당자인 "프로도" 에게 전달하려고 합니다. 이 때 개인정보 보호을 위해 사용자 아이디 중 일부 문자를 '*' 문자로 가려서 전달했습니다. 가리고자 하는 문자 하나에 '*' 문자 하나를 사용하였고 아이디 당 최소 하나 이상의 '*' 문자를 사용하였습니다. "무지"와 "프로도"는... school.programmers.co.kr 문제 설명 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한

[Java] 백준 1476 날짜 계산 [내부링크]

https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를... www.acmicpc.net 문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S

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

https://www.acmicpc.net/problem/1107 1107번: 리모컨 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 않고, 채널은 무한대 만큼 있다. 수빈이가 지금 이동하려고 하는 채널은 N이다. 어떤 버튼이 고장났는지 주어졌을 때, 채널 N으로 이동하기 위해서 버튼을 최소 몇 번 눌러야하는지 구하는 프로그램을 작성하시... www.acmicpc.net 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로

[Java] 백준 1748 수 이어 쓰기 1 [내부링크]

https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 1748번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 수 이어 쓰기 1 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.15 초 ( 하단 참고 ) 128 MB 19548 8961 7404 48.955% 문제 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. 1234567891011121314151617181920212223... 이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100... www.acmicpc.net 문제 1부터 N까지의 수를 이어서 쓰면 다음과 같이 새로운 하나의 수를 얻을 수 있다. 1234567891011121314151617181920212223... 이렇게 만들어진 새로운 수는 몇 자리 수일까? 이 수의 자릿수를 구

[Java] 백준 1759 암호 만들기 [내부링크]

https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 1759번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 암호 만들기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 49255 23126 16048 44.552% 문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다. 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o... www.acmicpc.net 문제 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스

[Java] 백준 15988 1, 2, 3 더하기 3 [내부링크]

https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 15988번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 1, 2, 3 더하기 3 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 (추가 시간 없음) 512 MB 20487 7498 5650 34.965% 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. ... www.acmicpc.net 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때

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

https://www.acmicpc.net/problem/1149 1149번: RGB거리 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ... www.acmicpc.net 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때,

[Java] 이코테 고정점 찾기 [내부링크]

고정점 이란, 수열의 원소 중에서 그 값이 인텍스와 동일한 원소를 의미합니다. 예를 들어 수열 a = {-15, -4, 2, 8, 13}이 있을 때 a[2] = 2 이므로 고정점은 2가 됩니다. 하나의 수열이 N개의 서로 다른 원소를 포함하고 있으며, 모든 원소가 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 고정점이 있다면, 고정점을 출력하는 프로그램을 작성하세요. 고정점은 최대 1개만 존재합니다. 만약 고정점이 없다면 -1을 출력합니다. 단, 이문제는 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받습니다. 입력 조건 : 첫째 줄에 N이 입력 됩니다. (1 <= N <= 1,000,000) 둘째 줄에 M개의 원소가 정수 형태로 공배긍로 구분되어 입력됩니다. (-10(9승) <= 각 원소의 값 <= 10(9승)) 출력 조건 : 고정점을 출격한다. 고정접이 없다면 -1을 출력합니다. 입력 예시 1 : 5 -15 -6 1 3 7 출력 예시 1 : 3

[Java] 백준 2110 공유기 설치 [내부링크]

https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 2110번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 공유기 설치 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 42194 15084 10678 37.802% 문제 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x 1 , ..., x N 이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.

[Java] 백준 2290 LCD Test [내부링크]

https://www.acmicpc.net/problem/2290 2290번: LCD Test 2290번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 LCD Test 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 2538 1255 950 50.185% 문제 지민이는 새로운 컴퓨터를 샀다. 하지만 새로운 컴퓨터에 사은품으로 온 LC-디스플레이 모니터가 잘 안나오는 것이다. 지민이의 친한 친구인 지환이는 지민이의 새로운 모니터를 위해 테스트 할 수 있는 프로그램을 만들기로 하였다. 입력 첫째 줄에 두 개의 정수 s와 n이 들어온다. (1 ≤ s ≤ 10, 0 ≤ n ≤ 9,9... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int s = s

[Java] 백준 16931 겉넓이 구하기 [내부링크]

https://www.acmicpc.net/problem/16931 16931번: 겉넓이 구하기 문제 크기가 N×M인 종이가 있고, 종이는 1×1크기의 칸으로 나누어져 있다. 이 종이의 각 칸 위에 1×1×1 크기의 정육면체를 놓아 3차원 도형을 만들었다. 종이의 각 칸에 놓인 정육면체의 개수가 주어졌을 때, 이 도형의 겉넓이를 구하는 프로그램을 작성하시오. 위의 그림은 3×3 크기의 종이 위에 정육면체를 놓은 것이고, 겉넓이는 60이다. 입력 첫째 줄에 종이의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 종이의 각 칸에 놓인 정육면체의 수가 주어진다. 출력 첫째 줄에 도형의 겉넓이를 출력한다. 제한 1 ≤ N, M ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n =

[Java] 백준 16967 배열 복원하기 [내부링크]

https://www.acmicpc.net/problem/16967 16967번: 배열 복원하기 문제 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐진다. 즉, 배열 B의 (i, j)에 들어있는 값은 아래 3개 중 하나이다. (i, j)가 두 배열 모두에 포함되지 않으면, B i,j = 0이다. (i, j)가 두 배열 모두에 포함되면, B i,j = A i,j + A i-X,j-Y 이다. (i, j)가 두 배열 중 하나에 포함되면, B i,j = A ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h =

[Java] 백준 20055 컨베이어 벨트 위의 로봇 [내부링크]

https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 문제 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부터 2N까지의 번호가 매겨져 있다. 벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내구도는 A i 이다. 위의 그림에서 1번 칸이 있는 위치를 " 올리는 위치 ", N번 칸이 있는 위치를 " 내리는 위치 "라고 한다. 컨베이어 벨트에 ... www.acmicpc.net import java.util.*; public class Main { static int k, n; static int[][] arr; static boolean[] robot; public static void

[Java] 백준 16234 인구이동 [내부링크]

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 문제 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 하루 동안 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 ... www.acmicpc.net import java.util.*; public class Main { static int[][] arr; static boolean[][] visit; static List<Country> list; static int[] mo

[Java] 자바 백준15664 N과 M (10) [내부링크]

https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 15664번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 N과 M (10) 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 8416 6752 5577 80.979% 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A 1 ≤ A 2 ≤ ... ≤ A K-1 ≤ A K 를 만족하면, 비내림차순이라고 한다. 입력 첫... www.acmicpc.net import java.util.*; public class Main { static int n, m; static int[] arr; static int[] combi; static boolean[] visit; public s

[Java] 게임 맵 최단거리 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으... school.programmers.co.kr 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착

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

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 문제 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 이 지도의 위에 주사위가 하나 놓여져 있으며, 주사위의 전개도는 아래와 같다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 2 4 1 3 5 6 주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져 있으며, 놓여져 있는 곳의 좌표는 (x, y) 이다. 가장 처음에 주사위에는 모든 면에 0이 적혀져 있다. 지도의 각 칸에는 정수가 하나씩 쓰여져 있... www.acmicpc.net 주사위 도면 import java.util.*; public class Main { static int[] moveX = {0, 0, 0, -1, 1}; // 동서북남 static int[] moveY = {0, 1, -1, 0, 0}

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

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 문제 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음과 같이 작동한다. 현재 위치를 청소한다. 현재 위치에서 현재 방향을 기준... www.acmicpc.net import java.util.*; public class Main { static int[] moveX = {-1, 0, 1, 0}; // 북동남서 static int[] moveY = {0, 1, 0, -1}; static

[Java] 백준 16935 배열 돌리기 3 [내부링크]

https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 문제 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → 7 4 6 2 3 1 7 4 6 2 3 1 → 1 8 3 4 2 9 9 2 3 6 1 5 → 7 2 6 9 8 2 4 2 9 3 1 8 → 1 6 2 9 8 4 <배열> <연산 결과> 2번 연산은 배열을 좌우 반전시키는 연산이다. 1 6 2 9 8 4 ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextI

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

https://www.acmicpc.net/problem/14890 14890번: 경사로 오늘은 이 지도에서 지나갈 수 있는 길이 몇 개 있는지 알아보려고 한다. 길이란 한 행 또는 한 열 전부를 나타내며, 한쪽 끝에서 다른쪽 끝까지 지나가는 것이다. 다음과 같은 N=6인 경우 지도를 살펴보자. 이때, 길은 총 2N개가 있으며, 아래와 같다. 길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 모두 같아야 한다. 또는, 경사로를 놓아서 지나갈 수 있는 길을 만들 수 있다. 경사로는 높이가 항상 1이며, 길이는 L이다. 또, 개수는 매우 많아 부족할 일이 없다. 경사로는 낮은 칸과 높은 칸을 연결하며, 아래와 같은 조... www.acmicpc.net import java.util.*; public class Main { static int[][] arr; static int n, l; public static void main(String[] args) { Scanner sc =

[Java] 백준 15662 톱니바퀴 (2) [내부링크]

https://www.acmicpc.net/problem/15662 15662번: 톱니바퀴 (2) 총 8개의 톱니를 가지고 있는 톱니바퀴 T개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, ..., 가장 오른쪽 톱니바퀴는 T번이다. 아래 그림은 T가 4인 경우이다. 이때, 톱니바퀴를 총 K번 회전시키려고 한다. 톱니바퀴의 회전은 한 칸을 기준으로 한다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴를 회전시키려면, 회전시킬 톱니바퀴와 회전시킬 방향을 결정해야 한다.... www.acmicpc.net import java.util.*; public class Main { static int[][] arr; static int t, k; public static void main(String[] args) { Scanner

[Java] 백준 18352 특정 거리의 도시 찾기 [내부링크]

https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 문제 어떤 나라에는 1번부터 N 번까지의 도시와 M 개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다. 이 때 특정한 도시 X 로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K 인 모든 도시들의 번호를 출력하는 프로그램을 작성하시오. 또한 출발 도시 X 에서 출발 도시 X 로 가는 최단 거리는 항상 0이라고 가정한다. 예를 들어 N =4, K =2, X =1일 때 다음과 같이 그래프가 구성되어 있다고 가정하자. 이 때 1번 도시에서 출발하여 도달할 수 있는 도시 중에서, 최단 거리가 2인 도시는 4... www.acmicpc.net import java.util.*; public class Main { // 메모리초과, 시간초과로 인해 배열이 아닌 List에 도시 정보 저장 static ArrayList<ArrayList<Integer>> list

[Java] 정렬된 배열에서 특정 수의 개수 구하기 [내부링크]

N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 예를들어 수열 {1, 1, 2, 2, 2, 2, 3}이 있을 때 x = 2라면, 현재 수열에서 값이 2인 원소가 4개 이므로 4개를 출력합니다. 단, 이 문제는 시간 복잡도 O(log N)으로 알고리즘을 설계하지 않으면 '시간 초과'판정을 받습니다. 입력 조건 : 첫째 줄에 N과 x가 정수 형태로 공백으로 구분되어입력됩니다. (1 <= N <= 1,000,000), (- 10(9승) <= x <=10(9승)) 둘째 줄에 N개의 원소가 정수 형태로 공백으로 구분되어 입력됩니다. (- 10(9승) <= 각 원소의 값 <= 10(9승)) 출력 조건 : 수열의 원소 중에서 값이 x인 원소의 개수를 출력합니다. 단, 값이 x인 원소가 하나도 없다면 -1을 출력합니다. 입력 예시 1 : 7 2 1 1 2 2 2 2 3 출력 예시 1 : 4 입력 예시 2 : 7 2 1 1 2

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

https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 1715번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 카드 정렬하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 31580 10596 8254 33.810% 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc

[Java] 백준 16926 배열 돌리기 1 [내부링크]

https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 문제 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] ↓ ↓ ↑ ↑ A[3][1] A[3][2] → A[3][3] → A[3][4] A[3][5] ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int r = sc.nextInt(); int[][] arr = new int[n][m];

[Java] 백준 16927 배열 돌리기 2 [내부링크]

https://www.acmicpc.net/problem/16927 16927번: 배열 돌리기 2 문제 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] ↓ ↓ ↑ ↑ A[3][1] A[3][2] → A[3][3] → A[3][4] A[3][5] ... www.acmicpc.net import java.util.*; public class Main { static int[][] arr; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int r = sc.nextInt(); arr = new

[Java] 프로그래머스 괄호 변환 [내부링크]

https://school.programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘" 은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '(' 와 ')... school.programmers.co.kr 문제 설명 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는

[Java] 백준 18405 경쟁적 전염 [내부링크]

https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 문제 N x N 크기의 시험관이 있다. 시험관은 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 바이러스가 존재할 수 있다. 모든 바이러스는 1번부터 K 번까지의 바이러스 종류 중 하나에 속한다. 시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식해 나간다. 단, 매 초마다 번호가 낮은 종류의 바이러스부터 먼저 증식한다. 또한 증식 과정에서 특정한 칸에 이미 어떠한 바이러스가 존재한다면, 그 곳에는 다른 바이러스가 들어갈 수 없다. 시험관의 크기와 바이러스의 위치 정보가 주어졌을 때, S 초가 지난 후에... www.acmicpc.net import java.io.IOException; import java.util.*; public class Main { static int[][] arr; static ArrayList<Virus> list; static in

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

https://www.acmicpc.net/problem/14502 14502번: 연구소 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 ... www.acmicpc.net import java.util.*; public class Main { static int[][] arr; static int[][] temp; static int[] moveX = {0, 0, -1, 1}; static int[] m

[Java] 백준 10825 국영수 [내부링크]

https://www.acmicpc.net/problem/10825 10825번: 국영수 10825번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 국영수 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 25487 13220 9599 51.794% 문제 도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오. 국어 점수가 감소하는 순서로 국어 점수가 같으면 영어 점수가 증가하는 순서로 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로 모든 점수가 같으면 이름이 사전 순으로 증가하는... www.acmicpc.net import java.util.*; public class Main { static int n; public static void main(String[] args) { Scanner sc = new Scanner(System.in)

[Java] 백준 18310 안테나 [내부링크]

https://www.acmicpc.net/problem/18310 18310번: 안테나 18310번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 안테나 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 8720 2867 2340 34.785% 문제 일직선 상의 마을에 여러 채의 집이 위치해 있다. 이중에서 특정 위치의 집에 특별히 한 개의 안테나를 설치하기로 결정했다. 효율성을 위해 안테나로부터 모든 집까지의 거리의 총 합이 최소가 되도록 설치하려고 한다. 이 때 안테나는 집이 위치한 곳에만 설치할 수 있고, 논리적으로 동일한 위치에 여러 개의 집이 존재하는 것이 가능하다. 집들의... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n

[Java] 프로그래머스 실패율 [내부링크]

문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라. 제한사항 스테이지의 개수 N은

[Java] 백준 8980 택배 [내부링크]

https://www.acmicpc.net/problem/8980 8980번: 택배 아래 그림과 같이 직선 도로상에 왼쪽부터 오른쪽으로 1번부터 차례대로 번호가 붙여진 마을들이 있다. 마을에 있는 물건을 배송하기 위한 트럭 한 대가 있고, 트럭이 있는 본부는 1번 마을 왼쪽에 있다. 이 트럭은 본부에서 출발하여 1번 마을부터 마지막 마을까지 오른쪽으로 가면서 마을에 있는 물건을 배송한다. 각 마을은 배송할 물건들을 박스에 넣어 보내며, 본부에서는 박스를 보내는 마을번호, 박스를 받는 마을번호와 보낼 박스의 개수를 알고 있다. 박스들은 모두 크기가 같다. 트럭에 최대로 실을 수 있는 박스의 개수, 즉 트럭의 용량이... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextI

[Java] 백준 18406 럭키 스트레이트 [내부링크]

https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 18406번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 럭키 스트레이트 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 4748 3407 2773 72.026% 문제 어떤 게임의 아웃복서 캐릭터에게는 럭키 스트레이트라는 기술이 존재한다. 이 기술은 매우 강력한 대신에 항상 사용할 수는 없으며, 현재 게임 내에서 점수가 특정 조건을 만족할 때만 사용할 수 있다. 특정 조건이란 현재 캐릭터의 점수를 N 이라고 할 때 점수 N 을 자릿수를 기준으로 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[

[Java] 문자열 재정렬 [내부링크]

알파벳 대문자와 숫자(0 ~ 9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다. 입력 조건 : 첫째 줄에 하나의 무낮열 S가 주어집니다. (1 <= S의 길이 <= 10,000) 출력 조건 : 첫째 줄에 문제에서 요구하는 정답을 출력합니다. 입력 예시 1: K1KA5CB7 출력 예시 1 : ABCKK13 입력 예시 2 : AJKDLSI412K4JSJ9D 출력 예시 2 : ADDIJJJKKLSS20 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char[] s = sc.next().toCharArray(); int sum = 0; List<S

[Java] 프로그래머스 문자열 압축 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/60057?language=java 코딩테스트 연습 - 문자열 압축 Solution.java 1 class Solution { 2 public int solution ( String s ) { 3 int answer = 0 ; 4 return answer ; 5 } 6 } 실행 결과 실행 결과가 여기에 표시됩니다. programmers.co.kr 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생

[Java] 자물쇠와 열쇠 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/60059?language=java 코딩테스트 연습 - 자물쇠와 열쇠 고고학자인 "튜브" 는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠 로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠 와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1 인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 자물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있습니다. 열쇠는 회전과 이... programmers.co.kr 문제 설명 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의

[Java] 이코테 문자열 뒤집기 [내부링크]

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있습니다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 합니다. 다솜이 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것입니다. 예를 들어 S = 0001100일 때는 다음과 같습니다. 1. 전체를 뒤집으면 1110011이 된다. 2. 4번째 문자무터 5번째 문자까지 뒤집으면 1111111이 되어서 두번만에 모두 같은 숫자로 만들 수 있다. 하지만, 처음부터 4, 5번째 문자를 뒤집었으면 한번에 0000000이 되어서 1번만에 모두 같은 숫자로 만들 수 있습니다. 문자열 S가 주어졌을 때, 다솜이가 해야하는 행동의 최소 횟수를 출력하시오. 입력 조건 : 첫째 줄에 0과 1로만 이루어진 문자열 S가 주어집니다. S의 길이는 100만보다 작습니다. 출력 조건 : 첫째줄에 다솜이가 해야하는 행동의 최소 횟수를 출력합니다 입력 예시 : 0001100 출력 예시 : 1 import java.util.

[Java] 만들 수 없는 금액 [내부링크]

동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N = 5 이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리 (화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N = 3이고, 각 동전이 각각 3원, 5원, 7원짜리 (화폐 단위)동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원 입니다. 입력 조건 : 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1 <= N <= 1,000) 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며, 각 자연수는 공백으로 구분합니다. 이때, 각 화폐 단위는 1,000,000 이하의 자연수입니다. 출력 조건 : 첫째 줄에 주어진 동전들로 만들 수 없는 양의 정수 금액 중 최솟

[Java] 볼링공 고르기 [내부링크]

A, B 두 사람이 볼링을 치고 있습니다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 합니다. 볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여됩니다. 또한 같은 무게의 공이 여러 개 있을 수 있지만, 서로 다른 공으로 간주합니다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재합니다. 예를 들어 N이 5이고, M이 3이며 각각의 무게가 차례대로 1, 3, 2, 3, 2 일 때 각 공의 번호가 차례대로 1번부터 5번까지 부여됩니다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같습니다. (1번, 2번), (1번, 3번), (1번, 4번), (1번, 5번), (2번, 3번), (2번, 5번), (3번, 4번), (4번, 5번) 결과적으로 두 사람이 공을 고르는 경우의 수는 8가지입니다. N개의 공의 무게가 각각 주어질 때, 두 사람이 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하세요. 입력 조건 : 첫쨰

[Java] 백준 1111 IQ Test [내부링크]

https://www.acmicpc.net/problem/1111 1111번: IQ Test 문제 IQ Test의 문제 중에는 공통된 패턴을 찾는 문제가 있다. 수열이 주어졌을 때, 다음 수를 찾는 문제이다. 예를 들어, 1, 2, 3, 4, 5가 주어졌다. 다음 수는 무엇인가? 당연히 답은 6이다. 약간 더 어려운 문제를 보면, 3, 6, 12, 24, 48이 주어졌을 때, 다음 수는 무엇인가? 역시 답은 96이다. 이제 제일 어려운 문제를 보자. 1, 4, 13, 40이 주어졌을 때, 다음 수는 무엇일까? 답은 121이다. 그 이유는 항상 다음 수는 앞 수*3+1이기 때문이다. 은진이는 위의 3문제를 모두 풀지 못했으므... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc

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

https://www.acmicpc.net/problem/1339 1339번: 단어 수학 문제 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n

[Java] 백준 24524 아름다운 문자열 [내부링크]

https://www.acmicpc.net/problem/24524 24524번: 아름다운 문자열 문제 당신은 문자열 S $S$ 를 선물 받았다. 하지만 당신은 오직 문자열 T $T$ 만을 아름답다고 생각하기 때문에 기쁘지 않다. 당신은 같은 종류의 문자가 두 번 이상 나오는 것을 질색하기 때문에, T $T$ 역시 모든 문자가 서로 다르다 . 그러던 당신에게 좋은 생각이 떠올랐다. 바로 S $S$ 의 문자들을 골라내서 T $T$ 를 만드는 것이다! 당신은 S $S$ 에서 문자들을 골라내서 S $S$ 에서의 순서대로 이어 붙여 새 문자열을 만드는 시행을 여러 번 반복할 수 있다. 이때 S $S$ 의 각 문자는 최대 한 번씩 ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s =

[Java] 백준 7570 줄 세우기 [내부링크]

https://www.acmicpc.net/problem/7570 7570번: 줄 세우기 문제 대한 어린이집에 올해 입학한 어린이들이 놀이터에 한 줄로 서있다. 모든 어린이들에게는 입학할 때 주어진 번호가 있고 모두 옷에 번호표를 달고 있다. 그런데 어린이들은 아직 번호 순서대로 줄을 잘 서지 못하므로 선생님이 다음과 같은 방법을 사용해서 번호순서대로 줄을 세우려고 한다. 방법: 줄 서있는 어린이 중 한 명을 선택하여 제일 앞이나 제일 뒤로 보낸다. 위의 방법을 사용할 때 어린이가 이동해서 빈자리가 생기는 경우에는 빈자리의 뒤에 있는 어린이들이 한 걸음씩 앞으로 걸어와서 빈자리를 메꾼다. 예를 들어, 5명의 어린이들에게... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n

[Java] 백준 3109 빵집 [내부링크]

https://www.acmicpc.net/problem/3109 3109번: 빵집 문제 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 중에, 가스비가 제일 크다는 것을 알게되었다. 따라서 원웅이는 근처 빵집의 가스관에 몰래 파이프를 설치해 훔쳐서 사용하기로 했다. 빵집이 있는 곳은 R*C 격자로 표현할 수 있다. 첫째 열은 근처 빵집의 가스관이고, 마지막 열은 원웅이의 빵집이다. 원웅이는 가스관과 빵집을 연결하는 파이프를 설치하려고 한다. 빵집과 가스관 사이에는 건물이 있을 수... www.acmicpc.net import java.util.*; public class Main { static String[][] arr; static int r; static int c; static int[] moveX = {-1, 0, 1}; static in

[Java] 효율적인 화폐 구성 [내부링크]

N가지 종류의 화폐가 있다. 이 화폐들의 개수를 최소한으로 이용해서 그 가치의 합이 M원이 되도록 하려고 한다. 이떄 각 화폐는 몇 개라도 사용할 수 있으며, 사용한 화폐의 구성은 같지만 순서만 다른 것은 같은 경우로 구분한다. 예를 들어 2원, 3원 단위의 화폐가 있을 때는 15원을 만들기 위해 3원을 5개 사용하는 것이 가장 최소한의 화폐 개수이다. 입력 조건 : 첫째 줄에 N, M이 주어진다. (1 <= N, <= 100, 1 <= M <= 10,000) 이후 M개의 줄에는 각화폐의 가치가 주어진다. 화폐 가치는 10,000보다 작거나 같은 자연수이다. 출력 조건 : 첫째 줄에 M원을 만들기 위한 최소한의 화폐 개수를 출력한다. 불가능할 때는 -1을 출력한다. 입력 예시 1 : 2 15 2 3 출력 예시 1 : 5 입력 예시 2 : 3 4 3 5 7 출력 예시 2 : -1 import java.util.Arrays; import java.util.Scanner; public c

[Java] 백준 9251 LCS [내부링크]

https://www.acmicpc.net/problem/9251 9251번: LCS 9251번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 LCS 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.1 초 ( 하단 참고 ) 256 MB 51691 20841 15316 40.335% 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s1

[Java] 2133 백준 타일 채우기 [내부링크]

https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 2133번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 타일 채우기 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 38489 13642 10747 35.286% 문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 복사 2 예제 출력 1 복사 3 힌트 아래 그림은 3×12 벽을 타일로 채운 예시이다. 출처 Contest > Waterloo... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n =

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

https://www.acmicpc.net/problem/2225 2225번: 합분해 2225번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 합분해 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 31500 13848 10053 42.389% 문제 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 입력 첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다. 출력 첫째 ... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n =

[Java] 백준 11062 카드 게임 [내부링크]

https://www.acmicpc.net/problem/11062 11062번: 카드 게임 11062번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 카드 게임 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 6257 2704 1939 45.093% 문제 근우와 명우는 재미있는 카드 게임을 하고 있다. N개의 카드가 일렬로 놓여 있다. 각 카드에는 점수가 적혀있다. 근우부터 시작하여 번갈아가면서 턴이 진행되는데 한 턴에는 가장 왼쪽에 있는 카드나 가장 오른쪽에 있는 카드를 가져갈 수 있다. 카드가 더 이상 남아있지 않을 때까지 턴은 반복된다. 게임의 점수는 자신이 가져간 카드에... www.acmicpc.net import java.util.Scanner; public class Main { static int[][][] dp; static int[] arr; public static void main(String[] args) { Sc

[Java] 모험가 길드 [내부링크]

한 마을에 모험가가 N명 있습니다. 모험가 길드에서는 N명의 모험가를 대상으로 '공포도'를 측정했는데,'공포도'가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어집니다. 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했습니다. 동빈이는 최대 몇 개의 모험가 그룹을 만들 수 있는지 궁금합니다. N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성하세요. 예를 들어, N = 5이고, 각 모험가의 공포도가 다음과 같다고 가정합시다. 2 3 1 2 2 이 경우 그룹 1에 공포도가 1,2,3인 모험가를 한 명씩 넣고, 그룹 2에 공포도가 2인 남은 두 명을 넣게 되면 총 2개의 그룹을 만들 수 있습니다. 또한 몇 명의 모험가는 마을에 그대로 남아 있어도 되기 때문에, 모든 모험가를 특정한 그룹에 넣을 필

[Java] 곱하기 혹은 더하기 [내부링크]

각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요. 단, + 보다 x를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다. 예를 들어 02984라는 문자열로 만들 수 있는 가장 큰 수는 ((((0 + 2) x 9) x 8) x 4) = 576입니다. 또한 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어집니다. 입력 조건 : 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다. (1 <= S의 길이 <= 20) 출력 조건 : 첫째 줄에 만들어질 수 있는 가장 큰 수를 출력합니다. 입력 예시 1 : 02984 출력 예시 1 : 576 입력 예시 2 : 567 출력 예시 2 : 210 import java.util.*

[Java] 순위 검색 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/72412?language=java 코딩테스트 연습 - 순위 검색 카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다. 코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 합니다. 지원 직군 항목에 backend와 frontend 중 하나를 선택해야 합니다. 지원 경력구분 항목에 junior와 senior 중 하나를 선택해야 합니다. 선호하는 소울푸드로 chicken과 pizza 중 하나를 선택해야 합니다. 인재영입팀에... programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테

[Java] 합승 택시 요금 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/72413?language=java 코딩테스트 연습 - 합승 택시 요금 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지 는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. "무지"는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. "무지"는 "어피치"와 귀가 방향이 비슷하여 택시 합승을 적절히 이용하면 택시요금을 얼마나 아낄 수 있을 지 계산해 보고 "어피치"에게 합승을 제안해 보려고 합니다. 위 예시 그림은 택시가 이동 가능한 반경에 있는 6개 지점 사이의 이동 가능한 택... programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져

[Java] 광고 삽입 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/72414?language=java 코딩테스트 연습 - 광고 삽입 카카오TV 에서 유명한 크리에이터로 활동 중인 죠르디 는 환경 단체로부터 자신의 가장 인기있는 동영상에 지구온난화의 심각성을 알리기 위한 공익광고를 넣어 달라는 요청을 받았습니다. 평소에 환경 문제에 관심을 가지고 있던 "죠르디"는 요청을 받아들였고 광고효과를 높이기 위해 시청자들이 가장 많이 보는 구간에 공익광고를 넣으려고 합니다. "죠르디"는 시청자들이 해당 동영상의 어떤 구간을 재생했는 지 알 수 있는 재생구간 기록을 구했고, 해당 기록을 바탕으로 공익광고가 삽입될 최적의 위치를 고를 수 있었습니다. 참고로 광고는 재생 중인 ... programmers.co.kr 문제 설명 카카오TV에서 유명한 크리에이터로 활동 중인 죠르디는 환경 단체로부터 자신의 가장 인기있는 동영상에 지구온난화의 심각성을 알리기 위한 공익광고를 넣어

[Java] 개미 전사 [내부링크]

개미 전사는 부족한 식량을 충당하고자 메뚜기 마을의 식량창고를 몰래 공격하려고 한다. 메뚜기 마을에는 여러 개의 식량창고가 있는데 식량창고는 일직선으로 이어져 있다. 각 식량창고에는 정해진 수의 식량을 저장하고 있으며 개미 전사는 식량창고를 선택적으로 약탈하여 식량을 빼앗을 예정이다. 이때 메뚜기 정찰병들은 일직선상에 존재하는 식량창고 중에서 서로 인접한 식량창고가 공격받으면 바로 알아챌 수 있다. 따라서 개미 전사가 정찰병에게 들키지 않고 식량 창고를 약탈하기 위해서는 최소한 한 칸 이상 떨어진 식량창고를 약탈해야 한다. 예를 들어 식량창고 4개가 다음과 같이 존재한다고 가정하자. (1, 3, 1, 5) 이떄 개미 전사는 두 번째 식량창고와 네 번째 식량창고를 선택했을 때 최댓값인 총 8개의 식량을 빼앗을 수 있다. 개미 전사는 식량창고가 이렇게 일직선상일 때 최대한 많은 식량을 얻기를 원한다. 개미 전사를 위해 식량창고 N개에 대한 정보가 주어졌을 때 얻을 수 있는 식량의 최댓값

[Java] 바닥 공사 [내부링크]

가로의 길이가 N, 세로의 길이가 2인 직사각형 형태읜 얇은 바닥이 있다. 태일이는 이 얇은 바닥을 1 * 2의 덮개, 2 * 1의 덦개, 2 * 2의 덮개를 이용하여 채우고자 한다. 이때 바닥을 채우는 모든 경우의 소ㅜ를 구하는 프로그램을 작성하시오. 예를 들어 2 * 3 크기의 바닥을 채우는 경우의 수는 5가지 이다. 입력 조건 : 첫째 줄에 N이 주어진다. (1 <= N <= 1,000) 출력 조건 : 첫째 줄에 2 * N 크기의 바닥을 채우는 방법의 수를 796, 796으로 나눈 나머지를 출력한다. 입력 예시 : 3 출력 예시 : 5 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[1001

[Java] 전력망을 둘로 나누기 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/86971?language=java 코딩테스트 연습 - 전력망을 둘로 나누기 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 2 이상 100... programmers.co.kr 문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할

[Java] 백준 9372 상근이의 여행 [내부링크]

https://www.acmicpc.net/problem/9372 9372번: 상근이의 여행 9372번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 상근이의 여행 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 12191 7320 5741 61.205% 문제 상근이는 겨울방학을 맞아 N개국을 여행하면서 자아를 찾기로 마음먹었다. 하지만 상근이는 새로운 비행기를 무서워하기 때문에, 최대한 적은 종류의 비행기를 타고 국가들을 이동하려고 한다. 이번 방학 동안의 비행 스케줄이 주어졌을 때, 상근이가 가장 적은 종류 의 비행기를 타고 모든 국가들을 여행할 수 있도록 도와주자. 상근이... www.acmicpc.net import java.util.*; public class Main { static int[] parent; public static void main(String[] args) { Scanner sc = new Scanner(Sy

[Java] 백준 2887 행성 터널 [내부링크]

https://www.acmicpc.net/problem/2887 2887번: 행성 터널 2887번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 행성 터널 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 14664 5438 3800 35.323% 문제 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(x A , y A , z A )와 B(x B , y B , z B )를 터널로 ... www.acmicpc.net import java.util.*; public class Main { static int[] parent; public static void main(String[] args) { Scanner sc = new Scanner(Sys

[Java] 백준 14567 선수과목 [내부링크]

https://www.acmicpc.net/problem/14567 14567번: 선수과목 (Prerequisite) 문제 올해 Z대학 컴퓨터공학부에 새로 입학한 민욱이는 학부에 개설된 모든 전공과목을 듣고 졸업하려는 원대한 목표를 세웠다. 어떤 과목들은 선수과목이 있어 해당되는 모든 과목을 먼저 이수해야만 해당 과목을 이수할 수 있게 되어 있다. 공학인증을 포기할 수 없는 불쌍한 민욱이는 선수과목 조건을 반드시 지켜야만 한다. 민욱이는 선수과목 조건을 지킬 경우 각각의 전공과목을 언제 이수할 수 있는지 궁금해졌다. 계산을 편리하게 하기 위해 아래와 같이 조건을 간소화하여 계산하기로 하였다. 한 학기에 들을 수 있는 과목 수에는 제한이 없다. 모든... www.acmicpc.net import java.util.*; public class Main { static List<Integer>[] list; // idx : 선수과목, 값 : 후수과목 static int[] course;

[Java] 백준 2623 음악프로그램 [내부링크]

https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 문제 인터넷 방송 KOI(Korea Open Internet)의 음악 프로그램 PD인 남일이는 자기가 맡은 프로그램 '뮤직 KOI'에서 가수의 출연 순서를 정하는 일을 매우 골치 아파한다. 순서를 정하기 위해서는 많은 조건을 따져야 한다. 그래서 오늘 출연 예정인 여섯 팀의 가수에 대해서 남일이가 보조 PD 세 명에게 각자 담당한 가수의 출연 순서를 정해오게 하였다. 보조 PD들이 가져온 것은 아래와 같다. 1 4 3 6 2 5 4 2 3 첫 번째 보조 PD는 1번 가수가 먼저, 다음에 4번 가수, 다음에 3번 가수가 출연하기로 순... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.

[Java] 백준 2056 작업 [내부링크]

https://www.acmicpc.net/problem/2056 2056번: 작업 문제 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 반드시 먼저 완료되어야 할 작업들이 있다. 이 작업들은 번호가 아주 예쁘게 매겨져 있어서, K번 작업에 대해 선행 관계에 있는(즉, K번 작업을 시작하기 전에 반드시 먼저 완료되어야 하는) 작업들의 번호는 모두 1 이상 (K-1) 이하이다. 작업들 중에는, 그것에 대해 선행 관계에 있는 작업이 하나도 없는 작업이 반드시 ... www.acmicpc.net import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.next

[Java] 신규 아이디 추천 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/72410=java 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오 는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기( - ), 밑줄( _ ), 마침표( . ) 문자만 사용할 수 있... programmers.co.kr 문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게

[Java] 메뉴 리뉴얼 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/72411?language=java 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피 는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합... programmers.co.kr 문제 설명 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합

[Java] 모음사전 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/84512=java 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 제한사항 word의 길이는 1 이상 5 이하입니다. word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다. 입출력 예 word... programmers.co.kr 문제 설명 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A

[Java] 가장 먼 노드 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/49189?language=java 코딩테스트 연습 - 가장 먼 노드 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 ... programmers.co.kr 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다

[Java] 부품 찾기 [내부링크]

동빈이네 전자 매장에는 부품이 N개 있다. 각 부품은 정수 형태의 고유한 번호가 있다. 어느 날 손님이 M개 종류의 부품을 대량으로 구매하겠다며 당일 날 견적서를 요청했다. 동빈이는 때를 놓치지 않고 손님이 문의한 부품 M개 종률르 보두 확인해서 견적서를 작성해야 한다. 이때 가게 안에 부품이 모두 있는지 확인하는 프로그램을 작성해보자. 예를 들어 가게의 부품이 총 5개일 때 부품 번호가 다음과 같다고 하자. N = 5 [8, 3, 7, 9, 2] 손님은 총 3개의 부품이 있는지 확인 요청했는데 부품 번호는 다음과 같다. M = 3 [5, 7, 9] 이때 손님이 요청한 부품 번호의 순서대로 부품을 확인해 부품이 있으면 yes를, 없으면 no를 출력한다. 구분은 공백으로 한다. 입력 조건 : 첫째 줄에 정수 N이 주어진다. (1 <= N <= 1,000,000) 둘쨰 줄에는 공백으로 구분하여 N개의 정수ㅏㄱ 주어진다. 이때 정수는 1보다 크고 1,000,000 이하이다. 셋째 줄에는

[Java] 떡볶이 떡 만들기 [내부링크]

오늘 동빈이는 여행 가신 부모님을 대신해서 떡집 일을 하기로 했다. 오늘은 떡볶이 떡을 만드는 날이다. 동빈이네 떡볶이떡은 재밌게도 떡볶이 떡의 길이가 일정하지 않다. 대신에 한 봉지 않에 들어가는 떡의 총 길이는 절단기로 잘라서 맞춰준다. 절단기에 높이(H)를 지정하면 줄지어진 떡을 한 번에 절단한다. 높이다. H보다 긴 떡은 H위의 부분이 잘릴 것이고, 낮은 떡은 잘리지 않는다. 예를 들어 높이가 19, 14, 10, 17cm인 떡이 나란히 있고 절단기 높이를 15cm로 지정하면 자른 뒤 떡의 높이는 15, 14, 10, 15cm가 될 것이다. 잘린 떡의 길이는 차례대로 4, 0, 0, 2cm이다. 손님은 6cm 만큼의 길이를 가져간다. 손님이 왔을 때 요청한 총 길이가 M일 때 적어도 M만큼의 떡을 얻기 우해 절단기에 설정할 수 있는 높이의 최댓값을 구하는 프로그램을 작성하시오. 입력 조건 : 첫째 줄에 떡의 개수 N과 요청한 떡의 길이 M이 주어진다. (1 <= N <= 1,

[Java] 순위 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/49191?language=java 코딩테스트 연습 - 순위 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 선... programmers.co.kr 문제 설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실

[Java] 미래 도시 [내부링크]

방문 판매원 A는 많은 회사가 모여 있는 공중 미래도시에 있다. 공중 미래 도시에는 1번부터 N번 까지의 회사가 있는데 특정 회사끼리는 서로 도로를 통해 연결되어 있다. 방문 판매원 A는 현재 1번 회사에 위치해 있으며, X번 회사에 방문해 물건을 판매하고자 한다. 공중 미래 도시에서 특정 회사에 도착하기 위한 방법은 회사끼리 연결되어 있는 도로를 이용하는 방법이 유일하다. 또한 연결된 2개의 회사에는 양방향으로 이동할 수 있다. 공중 미래 도시에서의 도로는 마하의 속도로 사람을 이동시켜주기 때문에 특정 회사와 다른 회사가 도로로 연결되어 있다면, 정확히 1만큼의 시간으로 이동할 수 있다. 또한 오늘 방문 판매원 A는 기대하던 소개팅에도 참석하고자 한다. 소개팅읜 상대는 K번 회사에 존재한다. 방문 판매원 A는 X회사에 가서 물건을 판매하기 전에 먼저 소개팅 상대의 회사에 찾아가서 함꼐 커피를 마실 예정이다. 따라서 방문 판매원 A는 1번 회사에 출발하여 K번 회사를 방문한 뒤에 X

[Java] 최소직사각형 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/86491?language=java 코딩테스트 연습 - 최소직사각형 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다. 명함 번호 가로 길이 세로 길이 1 60 50 2 30 70 3 60 30 4 80 40 가장 긴 가로 길이와 세로 길이가 각각 80, 70이기 때문에 80(가로) x 70(세로) 크기의 지갑을 만들면... programmers.co.kr 문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을

[Java] 부족한 금액 계산하기 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/82612?language=java 코딩테스트 연습 - 부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ... programmers.co.kr 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다

[Java] 피로도 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/87946?language=java 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 8... programmers.co.kr 문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기

[Java] k진수에서 소수 개수 구하기 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/92335?language=java 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n 이 주어집니다. 이 숫자를 k 진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0 처럼 소수 양쪽에 0이 있는 경우 P0 처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P 처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P 처럼 소수 양쪽에 아무것도 없는 경우 단, P 는 각 자릿수에 0을 포함하지 않는 소수입니다. 예를 들어, 101은 P 가 될 수 없습니다. 예를 들어, 437674을 3진수로 바꾸면 211... programmers.co.kr 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개

[Java] 주차 요금 계산 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/92341?language=java 코딩테스트 연습 - 주차 요금 계산 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분) 차량 번호 내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 programmers.co.kr 문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(

[Java] 팀 결성 [내부링크]

학교에서 학생들에게 0번부터 N번까지의 번호를 부여했다. 처음에는 모든 학생이 서로 다른 팀으로 구분되어, 총 N + 1개의 팀이 존재한다. 이때 선생님은 '팀 합치기' 연산과 '같은 팀 여부 확인'연산을 사용할 수 있다. 1. '팀 합치기' 연산은 두 팀을 합치는 연산이다. 2. '같은 팀 여부 확인' 연산은 특정한 두 학생이 같은 팀에 속하는지를 확인하는 연산이다. 선생님이 M개의 연산을 수행할 수 있을 때, '같은 팀 여부 확인' 연산에 대한 연산 결과를 출력하는 프로그램을 작성하시오. 입력조건 : 첫째 줄에 N,M이 주어진다. M은 입력으로 주어지는 연산의 개수이다. (1 <= N, M <= 100,000) 다음 M개의 줄에는 각각의 연산이 주어진다. '팀 합치기' 연산은 0 a b 형태로 주어진다. 이는 a번 학생이 속한 팀과 b번 학생이 속한 팀을 합친다는 의미이다. '같은 팀 여부 확인' 연산은 1 a b 형태로 주어진다. 이는 a번 학생이 속한 팀과 b번 학생이 속한

[Java] 도시 분할 계획 [내부링크]

동물원에서 막 탈출한 원숭이 한마리가 세상 구경을 하고 있다. 어느 날 원숭이는 '평화로운 마을'에 잠시 머물렀는데 마침 마을 사람들은 도로 공사 문제로 머리를 맞대로 회의 중이었다. 마을은 N개의 집과 그 집들을 연결하는 M개의 길로 이루어져 있다. 길은 어느 방향으로든지 다닐 수 있는 편리한 길이다. 그리고 길마다 길을 유지하는데 드는 유지비가 있다. 망르의 이장은 마을을 2개의 분리된 마을로 분할할 계획을 세우고 있다. 마을이 너무 커서 혼자서는 관리할 수 없기 때문이다. 마을을 분할할 떄느 각 분리된 마을 안에 집들이 서로 연결되도록 분할해야 한다. 각 분리된 마을 안에 있는 임의의 두 집 사이에 경로가 항상 존재해야 한다는 뜻이다. 마을에는 집이 하나 이상 있어야 한다. 그렇게 마을의 이장은 계획을 세우다가 마을 안에 길이 너무 많다느 ㄴ생각을 하게 되었다. 일단 분리 된 두 마을 사이에 있는 길들은 필요가 없으므로 없앨 수있다. 그리고 각 분리된 마을 안에서도 임의의 두

[Java] 커리큘럼 [내부링크]

동빈이는 온라인으로 컴퓨터공학 강의를 듣고 있다. 이때 각 온라인 강의는 선수 강의가 있을 수 있는데, 선수 강의가 있는 강의는 선수 강의를 먼저 들어야만 해당 강의를 들을 수 있다. 예를 들어 '알고리즘' 강의의 선수 강의로 '자료구조'와 '컴퓨터 기초'가 존재한다면, '자료구조'와 '컴퓨터 기초'를 모두 들은 이후에 '알고리즘' 강의를 들을 수 있다. 동빈이는 총 N개의 강의를 듣고자 한다. 모든 강의는 1번부터 N번까지의 번호를 가진다. 또한 동시에 여러 개의 강의를 들을 수 있다고 가정한다 예를 들어 N = 3일 때, 3번 강의의 선수 강의로 1번과 2번 강의가 있고, 1번과 2번 강의는 선수 강의가 없다고 가정하자. 그리고 각 강의에 대하여 강의 시간이 다음과 같다고 가정하자. 1번 강의 : 30시간 2번 강의 : 20시간 3번 강의 : 40시간 이 경우 1번 강의를 수강하기까지의 최소 시간은 30시간, 2번 강의를 수강하기까지의 최소 시간은 20시간, 3번 강의를 수강하기

[Java] 게임 개발 [내부링크]

현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 X 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로 부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 메뉴얼은 이러하다. 1. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 2. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 회전한 다음 왼쪽으로 한칸을 전진한다. 왼쪽 방향에 가보지 않은 칸이 없다면, 왼쪽 방향으로 회전만 수행하고 1단계로 돌아간다. 3. 만약 네 방향 모두 이미 가본 칸이거나 바다로 되어있는 칸인

[Java] 숫자 문자열과 영단어 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/81301?language=java 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s 가 매개변수로 주어집니다. s 가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성... programmers.co.kr 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게

[Java] 거리두기 확인하기 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/81302?language=java 코딩테스트 연습 - 거리두기 확인하기 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼 아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다. 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리 1 가 2 이하로 앉지 말아 주세요. 단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있을 경우에는 허용합니다. 예를 들어, 위 그림처럼 자리 사이에 파티션이 존재한다면 맨해튼 거리가 2여도 거리두기를 지킨 것... programmers.co.kr 문제 설명 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군

[Java] 표 편집 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/81303?language=java 코딩테스트 연습 - 표 편집 업무용 소프트웨어를 개발하는 니니즈웍스의 인턴인 앙몬드는 명령어 기반으로 표의 행을 선택, 삭제, 복구하는 프로그램을 작성하는 과제를 맡았습니다. 세부 요구 사항은 다음과 같습니다 위 그림에서 파란색으로 칠해진 칸은 현재 선택된 행 을 나타냅니다. 단, 한 번에 한 행만 선택할 수 있으며, 표의 범위(0행 ~ 마지막 행)를 벗어날 수 없습니다. 이때, 다음과 같은 명령어를 이용하여 표를 편집합니다. "U X" : 현재 선택된 행에서 X칸 위에 있는 행을 선택합니다. "D X" : 현재 선택된 행에서 X칸 아래에 있는 행을 선택합니다... programmers.co.kr import java.util.Stack; class Solution { public String solution(int n, int k, String[] cmd)

[Java] 신고 결과 받기 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 ... programmers.co.kr 문제 설명 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한

[Java] 프로그래머스 여행경로 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/43164?language=java 코딩테스트 연습 - 여행경로 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상... programmers.co.kr 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로

[Java] 프로그래머스 전화번호 목록 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42577?language=java 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_b... programmers.co.kr 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영

[Java] 프로그래머스 위장 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42578?language=java 코딩테스트 연습 - 위장 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은... programmers.co.kr 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠

[Java] 음료수 얼려 먹기 [내부링크]

N x M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 아래의 예시에서는 총 3개의 아이스크림이 생성된다. 4 5 00110 00011 11111 00000 결과 : 3 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 입력 조건 : 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로길이 M이 주어진다. (1 <= N,M <= 1,000) 두 번째 줄부터 N + 1 번째 줄까지 얼음 틀의 형태가 주어진다. 이때 구멍이 뚫려있는 부분은 0, 그렇지 않은 부분은 1이다. 출력 조건 : 한 번에 만들 수 있는 아이스크림의 개수를 출력한다. import java.util.*; public class Main { static in

[Java] 미로 탈출 [내부링크]

N x M 크기의 직사각형 형태의 미로가 있다. 미로에는 여러마리의 괴물이 있어 이를 피해 탈출해야 한다. 시작 위치는 (0, 0)이고 미로의 출구는 (N - 1, M - 1)에 존재하며 한번에 한 칸씩 이동할 수 있다. 0은 괴물이 있는 부분, 1은 괴물이 없는 부분이다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다. 입력 조건 : 첫째 줄에 두 정수 N, M(4 <= N, M <= 200)이 주어진다. 다음 N개의 줄에는 각각 M개의 정수(0 혹은 1)로 미로의 정보가 주어진다. 각각의 수들은 공백 없이 붙어서 입력으로 제시된다. 또한 시작 칸과 마지막 칸은 항상 1이다. 출력 조건 : 첫째 줄에 최소 이동 칸의 개수를 출력한다. 입력 예시 : 5 6 101010 111111 000001 111111 111111 출력 예시 : 10 import java.

[Java] 상하좌우 [내부링크]

여행가 A는 N x N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 x 1 크기의 정사각형으로 나누어져 있다. 가장 왼쪽 위 좌표는 (1, 1) 이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당한다. 여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며 시작 좌표는 항상 (1, 1)이다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 놓여있다. 계획서에는 하나의 줄에 띄어쓰기를 기준으로 하여 L, R, U D 중 하나의 문자가 반복적으로 적혀있다. 각 문자의 의미는 다음과 같다. L : 왼쪽으로 한 칸 이동 R : 오른쪽으로 한 칸 이동 U : 위로 한 칸 이동 D : 아래로 한 칸 이동 이때 여행가 A가 N x N 크기의 정사각형 공간을 벗어나느 움직임은 무시된다. 예를 들어 (1, 1)의 위치에서 L혹은 U를 만나면 무시된다. 다음은 N = 5 인 지도와 계획서이다. R -> R -> R -> U -> U -> D (1,1 ) (1, 2) (1, 3) (1,

[Java] 시각 [내부링크]

정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다. 00시 00분 03초 00시 13분 30초 반면에 다음은 3이 하나도 포함되어 있지 않으므로 세면 안 되는 시각이다. 00시 02분 55초 01시 27분 45초 입력 조건 : 첫째 줄에 정수 N이 입력된다. (0 <= N <= 23) 출력 조건 : 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 출력한다. 입력 예시 : 5 출력 예시 : 11475 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n

[Java] 프로그래머스 단어 변환 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/43163?language=java 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변... programmers.co.kr 문제 설명 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장

[Java] 백준 10814 나이순 정렬 [내부링크]

https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 10814번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 나이순 정렬 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 3 초 256 MB 61557 26410 20043 42.103% 문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름... www.acmicpc.net import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(Str

[Java] 백준 11651 좌표 정렬하기 2 [내부링크]

https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 11651번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 좌표 정렬하기 2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 32344 21470 18158 68.125% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 x i 와 y i 가 주어진다. (-100,000 ≤... www.acmicpc.net import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(

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

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 18870번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 좌표 압축 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 20946 9159 6932 41.949% 문제 수직선 위에 N개의 좌표 X 1 , X 2 , ..., X N 이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. X i 를 좌표 압축한 결과 X' i 의 값은 X i > X j 를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X 1 , X 2 , ..., X N 에 좌표 압축을 적용한 결과 X' 1 , X' 2 , ..., X' N... www.acmicpc.net import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public st

[Java] 큰 수의 법칙 [내부링크]

문제 : 큰 수의 법칙은 N개의 숫자가 존재하는 하나의 배열이 주어졌을 때, 해당하는 수들 중 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 특정 인덱스에 해당하는 수가 K번을 초과하여 더해질 수는 없다. 서로 다른 인덱스에 해당하는 수가 같은 경우에는 두 수를 다른 수로 간주한다. 5개의 숫자가 존재하는 {2, 4, 5, 4, 6} 배열이 있을 경우 M은 8이고 K는 3일 때, 큰 수의 법칙을 적용하여 가장 큰 수를 만든다면 : 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5 = 46이 된다. 입력 조건 : 첫째 줄에 N(2 <= N <= 1,000), M(1 <= M <= 10,000), K(1 <= k <= 10,000)의 자연수가 주어지며, 각 자연수는 공백으로 구분한다. 둘째 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단, 각각의 자연수는 1이상 10,000 이하의 수로 주어진다. 입력으로 주어지는 k는 항상 M보다 작거나 같다. 출력 조건 :

[Java] 가장 큰 수 [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42746?language=java 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numb... programmers.co.kr 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면

[Java] 프로그래머스 H-index [내부링크]

https://programmers.co.kr/learn/courses/30/lessons/42747?language=java 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과 1 에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n 편 중, h 번 이상 인용된 논문이 h 편 이상이고 나머지 논문이 h번 이하 인용되었다면 h 의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성... programmers.co.kr 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따

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

https://programmers.co.kr/learn/courses/30/lessons/42748?language=java 코딩테스트 연습 - K번째수 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명... programmers.co.kr 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6,

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

https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 11053번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 가장 긴 증가하는 부분 수열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 88715 34639 22704 37.130% 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = { 10 , 20 , 10, 30 , 20, 50 } 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N ... www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String args []) { Scann

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

https://www.acmicpc.net/problem/1912 1912번: 연속합 1912번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 연속합 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 (추가 시간 없음) 128 MB 92251 30817 21319 32.207% 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 ... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new Scanner(System.in); int n =

[Java] 백준 2750 수 정렬하기 [내부링크]

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 2750번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 수 정렬하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 104085 59131 40723 58.235% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 ... www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new

[Java] 백준 2751 수 정렬하기 2 [내부링크]

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 2751번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 수 정렬하기 2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 154904 42120 28734 30.000% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬... www.acmicpc.net import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main

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

https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 1427번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 소트인사이드 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 45487 27935 23505 61.875% 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 예제 입력 1 복사 2143 예제 출력 1 복사 4321 예제 입력 2 ... www.acmicpc.net import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(S

[Java] 백준 11650 좌표 정렬하기 [내부링크]

https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 11650번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 좌표 정렬하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 60472 29106 22111 48.054% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 x i 와 y i 가 주어진다. (-100,000 ≤ x... www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc =

[Java] 백준 1181 단어 정렬 [내부링크]

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 1181번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 단어 정렬 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 73450 30243 22483 40.307% 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길... www.acmicpc.net import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String

[Java] 백준 11055 가장 큰 증가 부분 수열 [내부링크]

https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 11055번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 가장 큰 증가 부분 수열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 30101 13668 10868 45.255% 문제 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수열은 A = { 1 , 100, 2 , 50 , 60 , 3, 5, 6, 7, 8} 이... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new Scanner(System.

[Java] 백준 1890 점프 [내부링크]

https://www.acmicpc.net/problem/1890 1890번: 점프 1890번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 점프 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 32144 9669 7224 28.814% 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new Scanner(System.in); int N =

[Java] 9465 스티커 [내부링크]

https://www.acmicpc.net/problem/9465 9465번: 스티커 9465번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 스티커 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 43400 19963 13364 47.221% 문제 상근이의 여동생 상냥이는 문방구에서 스티커 2n개를 구매했다. 스티커는 그림 (a)와 같이 2행 n열로 배치되어 있다. 상냥이는 스티커를 이용해 책상을 꾸미려고 한다. 상냥이가 구매한 스티커의 품질은 매우 좋지 않다. 스티커 한 장을 떼면, 그 스티커와 변을 공유하는 스티커는 모두 찢어져서 사용할 수 없게 된다. 즉, 뗀 스티커의 ... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new Scanner(System.in); int T =

[Java] 10989 수 정렬하기 3 [내부링크]

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 복사 1 1 2 2 3 3 4 5 5 7 출처 문제를 만든 사람: baekjoon 데이터를 추가한 사람: cgiosy 문제의 오타를 찾은 사람: joonas 시간 제한 Java 8: 3 초 Java 8... www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public cla

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

https://www.acmicpc.net/problem/2108 2108번: 통계학 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어... www.acmicpc.net import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; i

[Java] 백준 7568 덩치 [내부링크]

https://www.acmicpc.net/problem/7568 7568번: 덩치 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new Scanner(System.in); int N =

[Java] 백준 1018 체스판 다시 칠하기 [내부링크]

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나... www.acmicpc.net import java.util.Scanner; public class Main { static int N; static int M; static char[][] arr; public static void main(String

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

https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀... www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args []) { Scanner sc = new Scanner(System.in); int

[Java] 백준 10809 알파벳 찾기 [내부링크]

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

[Java] 백준 2675 문자열 반복 [내부링크]

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

[Java] 백준 2407 조합 [내부링크]

https://www.acmicpc.net/problem/2407 해당 문제는 일반적인 조합 문제와 동일하지만 출력 범위가 int와 long값을 넘어가기 때문에 BigInteger를 사용해주어야 한다. 조합문제 풀이는 아래 포스팅을 참고 ! ! ㅎㅎ 관련 조합 문제 풀이 참고 : https://blog.naver.com/khk990/222581957253 테스트 케이스에는 출력이 제대로 됐지만 틀렸다고 해서 질문을 읽어보니까 범위가 넘어서 BigInteger를 써야한다고 했다. 첨 써보는거라 사용법도 찾아보고 하느라 문제 푸는게 조금 늦어짐,,

[Java] 백준 11727 2xn 타일링 2 [내부링크]

https://www.acmicpc.net/problem/11727 2xn 타일링 1과 동일한 조건에 2x2타일만 추가된 문제. 기존 문제에서 dp 식은 dp[i] &#x3D; dp[i - 1] + dp[i - 2]; 가 된다. 이 문제에서는 해당 식에서 조금만 수정만 해주면 답을 얻을 수 있다. 기존의 2x1 타일을 사용하기 위해서는 항상 2x2크기 만큼의 공간이 필요했다. ( &#x3D; 2x1 타일 2개 사용) -&#62; 높이는 항상 2로 고정되어 있기 때문에 높이가 1인 2x1타일을 사용하면 나머지 높이 1만큼의 공백을 채우기 위함을 뜻함. 따라서 새로 추가된 2x2 타일은 기존의 2x1타일을 사용하는 경우와 동일한 경우의 수가 발생하게 된다. 즉, dp[i] &#x3D; dp[i - 1] + dp[i - 2] * 2 가 된다. 2xn 타.......

[Java] 백준 2579 계단 오르기 [내부링크]

https://www.acmicpc.net/problem/2579 이번 문제는 좀,, 어려웠음.. 계단을 어떻게 올라갈지만 파악한다면 쉬운 문제가 될 수도 있다. 우선 계단을 올라갈 때 연속된 3칸은 밟지 못하는 전제하에 한칸 이전에서 올라갈지, 두칸 이전에서 올라갈지 2가지 경우로 나눠서 생각해야한다. 1. i - 1 칸에서 i 칸으로 올라갈 때 : 해당 경우는 i - 1 과 i 가 연속적이기 때문에 반드시 i-3칸으로부터 올라와야 한다. dp[i] &#x3D; dp[i - 3] + arr[i - 1] + arr[i]; i - 3칸 dp 값 i - 1칸 값 i 칸 값 2. n-2 칸에서 n칸으로 올라갈 때 : 연속적인 칸을 밟지 않기 때문에 이전에 밟은 칸은 고려해주지 않아도 된다. dp[i] &#x3D; dp[i - 2] + arr[i]; i.......

[Java] 자바 2789 블랙잭 [내부링크]

https://www.acmicpc.net/problem/2798 브루트포스 문제라 코드를 간결하게 쓰기보다는 어떻게든 풀어보자하고 풀어봄 ㅎㅎ 브론즈 문제인만큼 엄청 쉬웠고 바로 정답!

[Java] 백준 2231 분해합 [내부링크]

https://www.acmicpc.net/problem/2231 문제는 간단했는데 바로 정답을 못 맞춘 이유.. 1의 생성자는 1이 아니다. 이 문제는 오류처리만 제대로 해주면 아주 쉽게 풀 수 있다.

[Java] 3085 사탕 게임 [내부링크]

https://www.acmicpc.net/problem/3085 브루트포스 문제인 만큼 사탕을 하나 바꾸고 전체를 탐색한 뒤 최댓값을 구하고 다시 사탕을 변경 ,, 이런 방식으로 반복문을 돌며 전체를 처리해주면 된다.

[Java] 2293 동전 1 [내부링크]

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

[Java] 2606 바이러스 [내부링크]

https://www.acmicpc.net/problem/2606 DFS의 기본만 알고 있다면 간단하게 풀 수 있는 문제!

[Java] 17086 아기상어 2 [내부링크]

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

[Java] 2839 설탕 배달 [내부링크]

https://www.acmicpc.net/problem/2839 점화식을 직접 손으로 써봤는데 딱히 규칙..?은 없었음. 물론 있을수도 있지만 내가봤을땐 그랬음 ㅎ,, 그래서 연산의 순서를 정하기로 결정. 1. 5의 배수를 걸러냄. 2. 5 * n + 3 * n 으로 이뤄진 수를 걸러냄. 2 - 1. 위의 경우에서 temp에 해당하는 dp가 이미 계산 돼 있다면 해당 dp값 사용. 2 - 2. 위의 경우에서 temp에 해당하는 dp가 없고, 처음 계산한다면 끝까지 연산. 3. 3의 배수를 걸러냄. 이렇게하면 dp를 이용하면서 최솟값을 얻어낼 수 있다. 다른 코드들보다 내 코드가 좀 길긴하지만 난,, 내 코드가 젤 이해하기 쉬우니까 ^^;;

[Java] 백준 14226 이모티콘 [내부링크]

https://www.acmicpc.net/problem/14226 여러 코드를 참조 했지만 복사를 할 때엔 어떤 조건도 추가하지 않는다. 그래서 복사할 때에도 조건을 추가해봤는데 통과가 된다. 근데 시간이 아주 조금 줄어든걸 보면 굳이 필요가 없는 코드인지 ..?? 복사에서 방문 조건으로 걸러주지 않아도 어차피 붙여넣기 할 때 방문한 곳은 연산을 하지 않기 때문에 그런걸까? 조건이 여러개인 문제를 보면 자꾸 놓치게 된다,, 집중력 부족인가 ㅎㅎ,,

[Java] 백준 10870 피보나치 수 5 [내부링크]

https://www.acmicpc.net/problem/10870 피보나치 문제는 많이 풀어봤지만 dp를 적용해서 푸는건 첨이라 약간 어색? 했다 ㅋㅋ 재귀에서 메모제이션으로만 바꾼건데 ㅎ

[Java] 백준 2748 피보나치 수 2 [내부링크]

https://www.acmicpc.net/problem/2748 n이 90보다 작거나 같은수로 주어지기 때문에 int가 아닌 long으로 처리를 해줬다.

[Java] 백준 1010 다리 놓기 [내부링크]

https://www.acmicpc.net/problem/1010 점화식을 찾으려고 이것저것 써보며 계산했는데 못찾음 ㅋㅋ,, 점화식을 내가 찾고싶다고 찾을 수 있는건가..?? 힝^^,, 결국 어떻게 푸는건지 찾아봤다 ㅋ; 이 문제는 조합을 사용해야한다. 따라서 조합의 기본 개념을 알고 있어야 하며, 코드로 작성할 수 있어야한다. 조합 기본 식 : nCr &#x3D; n-1Cr-1 + n-1Cr nCr 에서 n과 r 값이 동일하거나 r이 0일 경우는 조합의 값이 1이 된다. -&#62; 재귀를 멈추는 조건으로 사용 : nCn &#x3D; nC0 &#x3D; 1 조합에서는 중복을 허용하지 않는다. : 문제에서 다리가 겹치면 안된다고 했으므로 (1, 2, 5)는 가능하고 (1, 5, 2)는 불가능한 경우가 된다. 하지만 조.......

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

https://www.acmicpc.net/problem/9095 dp문제를 풀면 점화식을 찾으려고 애썼지만 항상 실패했었다. 하지만 이 문제는 찾음 ^_^ 4 이상의 수(n)의 dp값은 dp[i - 1] + dp[i - 2] + dp[i - 3]로 구할 수 있다. 따라서 이문제는 3까지의 dp값을 구하고 반복문 내에서 해당 점화식을 써주면 끝! 쉬운 문제였지만 dp문제를 해결했기 땜에 기분이 좋음 ㅎㅎ,,,

[Java] 백준 11654 아스키코드 [내부링크]

https://www.acmicpc.net/problem/11654 문자에서 아스키코드 값을 알고 싶다면 해당 문자에서 0을 빼주면 된다.

[Java] 백준 11720 숫자의 합 [내부링크]

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

[Java] 16916 부분 문자열 [내부링크]

https://www.acmicpc.net/problem/16916 kmp.. 어렵다.. 이론 겨우 이해하면 코드가 이해가 안되고 코드 겨우 이해했어도 나중에 또 보면 또 모름,, ㅋ

[Java] 1701 Cubeditor [내부링크]

https://www.acmicpc.net/problem/1701 KMP 알고리즘은 getTable() 구조만 제대로 알고있다면 70프로는 해결했다고 봐도 될 것 같다. 물론 문제가 어렵다면 70프로까지는 아니더라도 ㅎㅎ 여튼 저 구조에서 변화를 조금씩 주면 문제를 풀 수 있다는 생각이 들었음. 저 구조를 익혀야겠다. 안되면,, 억지로 암기라도 ^^

[Java] 1789 수들의 합 [내부링크]

https://www.acmicpc.net/problem/1789 i가 1일 때부터 순서대로 더해주고 sum 값이 S를 넘을 때 break; 해준다. 그리고 i - 1을 해주면 끝. 만약 S가 7일 때, 1, 2, 3, 4 까지 더해주면 sum은 10이 되면서 break 된다. 이때 i값은 4가 됨. 이후에는 넘친 값 3을 sum에서 빼주면 S인 7이 될 수 있음. 때문에 i에서 1을 뺀 값인 3이 N이 된다.

[Java] 1260 DFS와 BFS [내부링크]

https://www.acmicpc.net/problem/1260 bfs 함수 가 1만 출력돼서 왜그런가 했더니 visit 함수를 초기화 안해줘서 생긴 문제 ㅋ 사소한건데 놓쳐서 깨나 헤맸다. 이 문제로 dfs와 bfs의 기본은 확실히 잡을 수 있는것 같다.

[Java] 1303 전쟁 - 전투 [내부링크]

https://www.acmicpc.net/problem/1303 답이 제대로 나왔는데 자꾸 런타임에러가 떠서 질문글을 봤더니 N, M을 M, N으로 해야 된다고 해서 고쳤더니 맞았다. N과 M을 x, y라고 생각해서 발생한 실수! 이 문제는 BFS와 DFS를 모두 사용해 풀 수 있다고 한다. 하지만 난 DFS를 더 선호하는 편이라 DFS로 풀었다. ㅎ

[Java] 16953 A -&gt; B [내부링크]

https://www.acmicpc.net/problem/16953 숨바꼭질 문제처럼 풀었더니 메모리 초과가 났다... 알고보니 (* 2) 나 (* 10 + 1) 과 같은 연산을 했을 때 int 범위를 벗어나기 때문이다. 그래서 long으로 고치고 이것저것 손보고 맞았습니다를 받을 수 있었다. BFS라서 boolean형의 visit배열을 선언했었는데 필요 없는 작업이었다. 대신 Pair라는 추가적 클래스를 선언해 num과 count를 관리해주어야했다. 아님 매 연산마다 count가 1씩 증가해 제대로된 연산값을 얻을 수 없기 때문!

[Java] 12851 숨바꼭질 2 [내부링크]

https://www.acmicpc.net/problem/12851 숨바꼭질 1과 비슷한 것 같지만 많이 달랐다. 방문했던 곳도 다시 방문할 수 있고 N과 K가 같은 경우도 비교해줘야 함!

[Java] 2178 미로 탐색 [내부링크]

https://www.acmicpc.net/problem/2178 이번 문제는 BFS 문제를 계속해서 풀다보니 간단하게 풀 수 있었다. 하지만 답이 한번에 나오지 않았는데 BFS 를 수행하는 아래 코드에서 count[x][y] &#x3D; count[p.x][p.y] + 1; 이 부분을 count[x][y] &#x3D; ++count[p.x][p.y] ; 이렇게 작성해버려서 오답이 나왔었다. 잘못 작성한 코드처럼 코드를 짜면 최소경로가 아닌 잘못된 길을 들었을 때, 다시 돌아가게 되면 count가 제대로 측정되지 못한다. 이동한 좌표인 x, y의 count 값을 증가해야 하는데 기존의 p.x, p.y의 count값을 증가해버리는것. 쉬운 문제였지만 혼자 풀어서 뿌듯 ^_^

[Java] 1743 음식물 피하기 [내부링크]

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

[Java] 13549 숨바꼭질 3 [내부링크]

https://www.acmicpc.net/problem/13549 메모리 초과도 계속나고 그냥 계~~~속 틀린 문제. 숨바꼭질 3은 이전 숨바꼭질 문제들과 달리 (x 2)에 해당하는 경우를 (+ 1), (- 1)보다 먼저 처리해줘야 한다. 입력이 1 2 일 때, 결과값은 (+ 1)로 처리한 1이 아닌 (x 2)로 처리한 0이 되어야 한다. 따라서 if문을 작성할 때 가장 위쪽에 작성해주어야 한다. 또한 도착지에 방문했을 경우 현재 q가 가지고 있는 시간을 출력하고 종료하는 것이 아니라, 각 경우의 시간을 비교해가며 최솟값으로 변경해주어야 한다. 숨바꼭질 시리즈 문제가 조금씩 다른데 이전 시리즈를 풀었다고 해서 꼭 다음 문제를 맞추는건 아닌듯,,, ㅜ

[Java] 13913 숨바꼭질 4 [내부링크]

https://www.acmicpc.net/problem/13913 자신의 부모를 저장하는 함수를 이용해 경로를 출력. 비슷한 문제를 계속 푸니까 더 헷갈린다. 숨바꼭질 이제 끝..

[Java] 문자열 뒤집기 [내부링크]

자바에서 문자열을 뒤집을 땐 기본적인 방법으로 for문 등의 반복문을 이용하여 문자열을 뒤집는다. 다음 ...

[Java] 1916 최소비용 구하기 [내부링크]

https://www.acmicpc.net/problem/1916 다익스트라는 처음이라 여기저기 참고하면서 문제 풀기,,, 어렵다 ㅎ;;

[Java] 1697 숨바꼭질 [내부링크]

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

[Java] 11657 타임머신 [내부링크]

https://www.acmicpc.net/problem/11657 출발지, 도착지, 가중치를 따로 관리하기 보다는 Edge라는 클래스를 작성해서 코드를 짜는게 훨씬 간편하게 간결한 코드를 짤 수 있었다. 앞으로 벨만포드 문제는 Edge 클래스를 만드는걸 기본으로 해야겠다. 벨만포드 문제가 처음엔 너무 복잡해서 감도 안잡혔는데 이문제 저문제 풀이를 훑어보다보니 어느정도 감을 익힐 수 있었다. 바로바로 코드를 작성할 수 있을 때까지 홧팅 ^_^

[Java] 1197 최소 스패닝 트리 [내부링크]

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

[Java] 10775 공항 [내부링크]

문제가 무슨말인지 한참을 읽어봤다,, 가끔 백준에서 제공하는 문제들을 보면 문제 자체가 이해가 안되는 경우가 종종있다,,, 번역체 처럼 ,,, 그럼 문제 풀때도 더 어렵게 느껴짐 ㅋ,,,

[Java] 1774 우주신과의 교감 [내부링크]

https://www.acmicpc.net/problem/1774 최소 스패닝트리 문제에 사용되는 간선 관리 Edge 클래스 말고 Pos클래스도 추가되니까 꽤 헷갈렸다 ㅋㅋ

[Java] 7795 먹을 것인가 먹힐 것인가 [내부링크]

https://www.acmicpc.net/problem/7795 투포인터 문제를 계속 다뤄서 쉽게 풀었지만 계속 틀렸습니다가 나와서 짜증났던 문제.. 정렬이 틀린건지 비교문이 틀린건지 다른 코드들을 찾아서 비교해도 왜 틀렸는지 알 수 없었다,, 알고보니 각각의 테스트 케이스마다 N과 M을 새로 입력 받고 그에 해당하는 배열을 새로 선언해야 하는데 그 코드를 반복문 안에 넣지 않아서 생긴 문제.. 우연하게도,,, 백준에서 제공하는 테스트 케이스는 첫번째 테스트 케이스가 두번째 테스트 케이스보다 배열의 크기가 더 커서 오류가 나지 않고 계속 돌아갔던 것,, 이게 날 더 힘들게 했다^^,,, 오류라도 났으면 빨리 알아차리고 고쳤을텐데 ㅎ 진짜 멍청했다 ,,.......

[Java] 팰린드롬 찾기 [내부링크]

&#x27;abba&#x27; 와 같이 뒤집어도 동일한 문자가 되는 문자를 팰린드롬 이라고 한다. 아래의 코드는 문자가 팰린드롬이 아닐 경우 FALSE 를 출력하고 맞을 경우 TRUE 를 출력하는 코드이다. 두번째 코드는 동일한 문제를 StringBuilder의 reverse() 함수를 이용하여 반복문 없이 팰린드롬을 찾아내는 코드이다. 세번째 코드도 동일한 문제이지만 알파벳의 대소문자 구분이 필요하지 않는 경우의 코드이다. 문자를 비교할 때 단순 equals()가 아닌 equalsIgnoreCase() 로 비교하면 된다.

[Java] 백준 2003 수들의 합2 [내부링크]

https://www.acmicpc.net/problem/2003 무난한 투포인터 문제이다. 그리 복잡하지 않고 기본에 충실한 문제. 아래는 내가 작성한 또다른 투포인터문제 ㅎㅎ 투포인터문제에 대해 약간의 ? 설명이 필요하다면 아래의 글을 읽어보세요! https://blog.naver.com/khk990 조건을 설정하는게 아직까지 매끄럽진 못하지만 투포인터에 대해 어느정도 파악을 했으니 반복하다보면 투포인터 문제도 지금보다는 간단하게 풀 수 있을 것 같다 ㅎㅎ

[Java] 2470 두 용액 [내부링크]

https://www.acmicpc.net/problem/2470 투포인터를 사용하는 간단한 문제 골드 5이지만 투포인터 사용법을 아다면 생각보다 쉽게 풀 수 있다 ㅎ

[Java] 영어 알파벳 뒤집기 [내부링크]

단순히 문자를 뒤집고 싶을 땐 반복문이나 StringBuilder를 사용하면 된다. 하지만 영어 알파벳과 다른 문자들을 구분해서 문자를 뒤집고 싶다면 Character.isAlphbetic(문자) 를 사용해 해당 문자가 알파벳인지 확인하고 문자를 뒤집으면 된다. 아래 코드는 알파벳과 알파벳이 아닌 문자들을 구분하여 양 끝을 가리키는 두개의 idx 의 값이 모두 알파벳일 경우에만 서로의 문자를 바꾸는 문제이다.

[Java] 백준 14719 빗물 [내부링크]

https://www.acmicpc.net/problem/14719 현재 배열의값을 기준으로 왼쪽과 오른쪽에서 가장 높은 기둥을 구해 빗물의 양을 구하는 문제. 문제를 한번에 풀 수는 없었지만 하나하나씩 풀다보니 이런문제는 이렇게 푸는거구나,, 하고 느끼게 된다 ㅎㅎ 더 노력하쟈!

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

https://www.acmicpc.net/problem/1931 그리디 알고리즘 하면 회의실 배정문제, 거스름 돈 등의 문제들이 거론된다. 해당 문제는 회의실 배정문제. 회의실 배정문제를 그리디 스럽게 풀기 위해서는 회의 끝나는 시간을 기준으로 오름차순 정렬을 하고, 만약 끝나는 시간이 동일하다면 시작하는 시간이 이른 회의를 선택하면 된다. 문제 해결법은 알고 있었지만 찾아보니 이차원 배열은 단순 sort 를 사용하지 않고 sort() 내부에 새로운 정렬 기준인 compareTo 를 따로 정의해 사용해야 했다. compareTo 의 사용은 꽤 오래전이라 기억이 나질 않아 다시 또 검색 ㅎㅎ 코딩을 끝내고 정답이라고 생각했는데 자꾸 오류가 나서 봤더니 어이없게도 이.......

[Java] 백준 5585 거스름돈 [내부링크]

https://www.acmicpc.net/problem/5585 그리디 알고리즘의 잔돈 구하는 문제 현재 금액을 잔돈으로 나누었을 때의 몫은 잔돈의 개수가 되고 나머지 금액은 새로운 현재 금액이 된다. 이런 식으로 금액이 0이 될 때까지 나눠주면 최소한의 잔돈의 개수를 구할 수 있다. 이 문제를 처음 접했던 예전은 해당 문제가 그리디 알고리즘을 적용한 문제인지 몰랐었다 ㅋㅋ 여튼 예전에도 많이 풀어봤던 문제 형태라 간단한 문제였다!

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

https://www.acmicpc.net/problem/13305 그리디 알고리즘을 적용한 문제이다. 모든 경우를 생각해서 최솟값을 찾아야 하나 싶지만 간단하게 답을 구할 수 있다. 현재 기름값이 현재 최소 기름값보다 적을 때만 최솟값을 현재 기름값으로 갱신해서 계산해주면 된다. 그렇지 않다면 단순히 계산해주면 되고 이렇게 할 경우 기름값을 모두 적용해 계산해보지 않고도 값을 구할 수 있다.

[Java] 백준 1806 부분합 [내부링크]

https://www.acmicpc.net/problem/1806 투포인터의 개념을 처음 접해봐서 처음에는 일단 내마음대로 풀어보기로 했다. 일반적인 풀이로 풀었을 때는 결과는 제대로 나왔지만 답은 틀렸다고 나왔었다. 배열을 내림차순으로 정렬하고 순서대로 더해가며 S 이상이 될 때까지 길이를 체크하는 것. 가장 짧은 길이를 구하는 것이기 때문에 이 방법으로 풀면 될거라고 생각했는데 어디서 틀린건진 잘 모르겠다. 그래서 투포인터에 대해 여기저기 돌아다니며 공부하고 문제를 다시 풀어서 성공,,! 문제의 핵심은 1. 두개의 포인터인 시작 포인터와 끝 포인터(start, end)를 잡는다. 2 - 1. 합이 S 이상인 경우에는 조건을 만족했기 때문에 시작 포인터와.......

[Java] 백준 2504 괄호의 값 [내부링크]

https://www.acmicpc.net/problem/2504 오랜만의 스택이라 재미있었다. 물론 문제는 재미있지 않았다. 머릿속으론 이렇게 하면 되겠지 하고 코드를 짜봐도 맘처럼 풀리지가 않았다. 그래서 다른 분들은 어떻게 코드를 짰나 찾아보다 가장 이해하기 쉬웠던 코드를 읽어보고 따라 짜 보았다. [백준]2504 - 괄호의 값 : 네이버 블로그 (naver.com) 참고한 블로그이다. 언제쯤 생각하는데로 바로바로 답을 만들어낼 수 있을까.. 문제가 조금 어려워 졌다고 바로 헤매는걸 보니 현타가 온다 ㅎㅎ,,, 그래도 꾸준히 풀어나가기 !!

[Java] 백준 1463 1로 만들기, 다이나믹 프로그래밍 [내부링크]

다이나믹 프로그래밍 : 메모리를 적절히 사용하여 수행시간의 효율성을 향상시키는 방법. 이미 계산한 결과...

[Java] 백준 11726 2xn 타일링, 다이나믹 프로그래밍 [내부링크]

https://www.acmicpc.net/problem/11726 처음 다이나믹 프로그래밍을 풀 때와는 달리 배열의 크기를 정하거...

[Java] 백준 2501 약수 구하기 [내부링크]

https://www.acmicpc.net/problem/2501 이 문제는 쉬운 브론즈 문제. 바로 정답을 맞출 수 있었지만 코드의...

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

https://www.acmicpc.net/problem/2609 우선 맘대로 코딩한 코드! for (int i &#x3D; 1; i &lt;&#x3D; (n...

[Java] 백준 3460 이진수 [내부링크]

https://www.acmicpc.net/problem/3460 우선 혼자 코딩을 끝내고 다른 코드들을 찾아보니 자바에는 10진수...

[Java] 백준 10818 최소, 최대 [내부링크]

https://www.acmicpc.net/problem/10818 배열을 사용해 Arrays.sort 함수로 정렬 후, idx값이 0 과 N-1 ...

[Java] 백준 2460 지능형 기차 2 [내부링크]

https://www.acmicpc.net/problem/2460 이차배열을 이용하여 [n][0] 이면 내리는 사람이기 때문에 전체 인...

[Java] 백준 10870 피보나치 수 5 [내부링크]

https://www.acmicpc.net/problem/10870 재귀를 배울 때 가장 먼저 만나게 되는 피보나치 수열 문제. 기본...

[Java] 백준 2693 N번째 큰 수 [내부링크]

https://www.acmicpc.net/problem/2693 Arrays.sort 함수로 정렬 후 3번째 큰 원소 출력! sort 함수덕에 ...

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

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

[Java] 문자, 문자열 입력 & 비교 & 대/소문자 변환 [내부링크]

문자, 문자열 입력 문자는 따로 입력받는 코드를 짠 기억이 없다,, 물론 예전에 해봤겠지만 생각이 나지 않...

[Java] 백준 2309 일곱 난쟁이 [내부링크]

https://www.acmicpc.net/problem/2309 전체합에서 뺐을 때 100이 되는 두 원소를 찾고 해당 원소는 0으로 ...

[Java] 문자열 자르기 [내부링크]

String을 입력받을 때 단어가 아닌 문장으로 받는다면 Scanner.next()가 아닌 Scanner.nextLine()으로 ...

[Java] 백준 1292 쉽게 푸는 문제 [내부링크]

https://www.acmicpc.net/problem/1292 처음에는 sum 계산과 출력을 아래에서 따로 해주었는데 for문 내에 ...

[Java] 백준 2581 소수 [내부링크]

https://www.acmicpc.net/problem/2581 기존의 소수찾기 문제에 범위가 추가된 것 말고는 별다른 것이 없었...