알고리즘/BaekJoon 114

백준 15664 : N과 M(10)

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

백준 15663 : N과 M(9)

문제 링크입니다 https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 이번에는 주어지는 N개의 자연수 중 같은 수가 있을 수도 있었습니다. 조건은 다음과 같고, - N개의 자연수 중에서 M개를 고른 수열 이번 문제에서 중요한 조건은 출력 조건에서 "중복되는 수열을 여러 번 출력하면 안된다"는 조건이었습니다. 예를 들면, 아래와 같..

백준 15657 : N과 M(8)

문제 링크입니다 https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 단, N개의 자연수는 모두 다른 수입니다. 조건은 다음과 같고, - N개의 자연수 중에서..

백준 15656 : N과 M(7)

문제 링크입니다 https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. www.acmicpc.net N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제였습니다. 단, N개의 자연수는 모두 다른 수입니다. 조건은 다음과 같고, - N개의 자연수 중에서 M개를 고른 수열 - 같은 수를 여러 번 골라도 된다. '15651번 N과 M(3)' 문제(https://seokeeee.tistory.co..

백준 5622 : 다이얼

문제 링크입니다 https://www.acmicpc.net/problem/5622 5622번: 다이얼 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. www.acmicpc.net 간단한 문자열 처리 문제였습니다. → 문제에 나와있는 그림을 보면 숫자 1을 걸려면 2초가 필요하고 1보다 큰 수를 거는 데..

백준 1157 : 단어 공부

문제 링크입니다 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 대문자로 출력하는 문제였습니다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 '?'를 출력해야 합니다. 대소문자 구분이 없이 개수를 세어야 하므로 아스키코드를 잘 활용해야 하는 문제였습니다. 문제 풀이 절차는 다음과 같습니다. [1] 문자열을 입력받고 문자열의 처음부터 끝까지 확인하며 각 알파벳이 몇 개 있는지 세..

백준 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 게임판이 주어졌을 때, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 하고, 가장 왼쪽 위 칸에서 가장 오른쪽..