본문 바로가기

전체 글

(58)
백준 11025 - 카드 구매하기 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b11042_%EC%B9%B4%EB%93%9C%EA%B5%AC%EB%A7%A4%ED%95%98%EA%B8%B0.java https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 민규가 구매하려고 하는 카드의 개수 N과 카드가 i개 포함된 카드팩의 가격 Pi원이 주어지면 N개를 구매하기 위해 지불해야하는 최대 금액을 출력하는 문제이다. 위의 예제 입력에서는 총 4개의 카드를 최대..
백준 9095 - 1, 2, 3 더하기 (다이나믹 프로그래밍) 깃허브: github.com/MSIQOC/BOJ/blob/master/b9095_123%EB%8D%94%ED%95%98%EA%B8%B0.java www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 간단하게 숫자가 주어지면 주어진 숫자를 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 문제이고, 처음엔 생각해내는 것이 어려울 수 있어도 잘 생각해보면 다이나믹프로그래밍으로 쉽게 풀리는 문제이다. 표현하는데에 사용되는 숫자인 1, 2, 3을 1과 2와 3의 합으로 표현하는 경우의 수는 다음과 같다. 여기에서 4를 표현할려면 어떻게 해야할까? 1에 3을, 2에 2..
백준 17299 - 오등큰수 참고 블로그: takeknowledge.tistory.com/82 백준 17299번 오등큰수 문제 스택 활용 풀이 ( Java ) 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13.. takeknowledge.tistory.com www.acmicpc.net/problem/17299 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이..
백준 1158 - 요세푸스 문제 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b1158_%EC%9A%94%EC%84%B8%ED%91%B8%EC%8A%A4%EB%AC%B8%EC%A0%9C.java www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제만 보고는 처음에 요구하는 것이 무엇인지 잡아내기가 힘들었던 것 같다. 문제에 있는 예제 입력 1을 보고 문제가 요구하는 것을 그림으로 나타내보았다. n은 7, k는 3이기 때문에 말그대로 7명의 사람들이 테이블을 둘러싸서 앉아있고 1부터 시작해서 세번째 턴이 될 때마다 한명씩 제거해주는 형태를 가지..
백준 9012 - 괄호 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b9012_%EA%B4%84%ED%98%B8.java www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제에서 요구하는건 (와 )가 다 쌍이 맞춰져 있는 케이스는 yes로 출력하고 그렇지 않은건 no로 출력하는 것이다. 스택의 원리를 이용하면 간단하게 풀 수 있는 문제였다. 스택은 문자열이 아닌 정수 스택을 만들면 시간절약이 될까 싶어서 정수형으..
백준 17413 - 단어뒤집기 2 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b17413_%EB%8B%A8%EC%96%B4%EB%92%A4%EC%A7%91%EA%B8%B02.java www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net msiqoc.tistory.com/4 백준 9093 - 단어 뒤집기 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b9093_%EB%8B%A8%EC%96%..
백준 10866 - 덱 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b10866_%EB%8D%B1.java https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 일반적인 큐가 한쪽으로 삽입이 가능하고 다른 한쪽으로 빼내는 구조를 가진다면, 덱은 양쪽 방향으로 삽입과 빼내는 것이 다 가능한 구조를 가지고있다. 내가 덱을 구현하는 데에 생각한 알고리즘을 그림으로 그려봤다. 두 개의 스택을 이어붙인 구조를 생각했으며, fr..
백준 9093 - 단어 뒤집기 깃허브: https://github.com/MSIQOC/BOJ/blob/master/b9093_%EB%8B%A8%EC%96%B4%EB%92%A4%EC%A7%91%EA%B8%B0.java https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 넣은 순서의 반대로 출력되는 스택의 성질을 이용해서 아주 간단하게 구현할 수 있는 문제였다. 코드에서는 케이스 개수를 n으로 정해주고, 입력받은 문장에서 한글자씩 스택에 넣을 때 다음으로 스택에 들어올 단어..