전체 글 177

백준 1152 : 단어의 개수

문제 링크입니다 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어질 때, 단어의 개수를 출력하는 문제였습니다. 결국, 공백이 연속해서 나오는 경우는 없기 때문에 공백의 개수를 세어서 "공백의 개수 + 1"이 단어의 개수가 되는 문제입니다. 하지만 문제의 조건에서 문자열의 앞과 뒤에 공백이 있을 수도 있다고 하였기 때문에 예외 처리를 해줘야 했습..

백준 10942 : 팰린드롬?

문제 링크입니다 https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 자연수 N개가 주어지고, S번째 수부터 E번째까지 수가 팰린드롬을 이루는지 물어보는 질문이 M개가 주어질 때, 각 질문에 대한 답으로 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력하는 문제였습니다. 다이나믹 프로그래밍으로 주어진 수들에 대해 모든 경우의 팰린드롬 여부를 미리 2차원 배열 dp에 모두 구해놓고 문제를 해결했습니다. 문제 풀이 절차는 다음과 같습니다. [1] dp[S][E] : S번째 수부터 E번째 수까..

백준 1890 : 점프

문제 링크입니다 https://www.acmicpc.net/problem/1890 1890번: 점프 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 www.acmicpc.net N×N 게임판이 주어졌을 때, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 하고, 가장 왼쪽 위 칸에서 가장 오른쪽..

백준 15655 : N과 M(6)

문제 링크입니다 https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 오름차순이어야 한다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 단, N개의 자연수는 모두 다른 수입니다. 조건은 다음과 같고, - N개의 자연수 중에서 M개를 고른 수열 - 고른 수열은 오름차순이어야 한다. '15654번 N과 M(5)' 문제(https://seokeeee.tistory.co..

백준 15654 : N과 M(5)

문제 링크입니다 https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 단, N개의 자연수는 모두 다른 수입니다. 조건은 다음과 같고, - N개의 자연수 중에서 M개를 고른 수열 중복되는 수열을 여러 번 출력하면 안되고 수열은 사전 순으로 증가하는 순서로 출력해야 합니다. 문제에서 예제 출력을 보면 같은 수를 중복해서 고르면 안되므로..

백준 15652 : N과 M(4)

문제 링크입니다 https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 조건은 다음과 같고, - 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 - 같은 수를 여러 번 골라도 된다. - 고른 수열은 비내림차순이어야 한다. → 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 재귀..

백준 15651 : N과 M(3)

문제 링크입니다 https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 조건은 다음과 같고, - 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 - 같은 수를 여러 번 골라도 된다. 재귀 호출을 통해 중복을 허용하고 M개를 고를 때마다 수열을 출력해주는 방식으로 문제를 해결했습니다. [소스코드] 1 2 3 4 5 6 7 8 9 10 ..

백준 15650 : N과 M(2)

문제 링크입니다 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 조건은 다음과 같고, - 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 - 고른 수열은 오름차순이어야 한다. 재귀 호출을 통해 항상 고른 수보다 큰 수(오름차순이기 때문)를 중복없이 M개를 고를 때마다 수열을 출력해주는 방식으로 문제를 해결했습니다. [소스코드]..

백준 15649 : N과 M(1)

문제 링크입니다 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 조건은 다음과 같고, - 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 재귀 호출을 통해 M개를 고를 때마다 수열을 출력해주는 방식으로 문제를 해결했습니다. [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..