본문 바로가기

알고리즘/백준 Baekjoon19

백준 1541번 잃어버린 괄호(JAVA) - 그리디 백준 1541번 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 문제설명 문자로된 식을 입력 받고 그 해당 식의 값이 최소로 만드는 괄호의 위치를 찾아서 계산 후에 최솟값을 출력한다. 접근 1. - 를 기준으로 문자열을 나눈다. 2. 나눠진 문자열들을 '+' 기준으로 나눈다음 각각 다 더한다. 3. 첫번째 값은 더해주고 나머지는 뺴주면서 최솟값으로 만든다. 코드 import java.io.*; import java.util.*; publi.. 2023. 2. 15.
백준 2309번 일곱 난쟁이(JAVA) 백준 2309번 https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제설명 9개의 값들 중 7개의 값이 합하여 100이 되는 경우의 수를 출력 하면 되는문제 > 브루트포스 알고리즘 접근 1. 9개중 7개를 뽑아서 100이 되야함 -> 9개중 2개를 뽑는것 과 같음. 2. 9개의 합에서 100을 뺀 값이 선택한 두개의 값이랑 같다면 해당 값을 0 으로 변경후 정렬(오름차순을 위해) 3. 인덱스 2번부터 9번까지 반복문을 돌며 출력. 코드 import jav.. 2023. 1. 16.
백준 9093번 단어 뒤집기(JAVA) 백준 9093번 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제설명 테스트 케이스의 개수를 입력받고, 그 만큼 반복하며 문자열을 입력받는다. 그 후, 단어를 기준으로 뒤집어서 출력하는 프로그램을 작성. 접근 1. 단어 기준이므로 공백을 기준으로 데이터를 쪼개야 할 것같다고 생각을함. 2. 공백을 기준으로 하여 단어별로 뒤집어야하니 am이 입력될 시 ma로 후입선출 LIFO가 일어남. -> Stack을 사용하면 될것 같다고 생각함. .. 2022. 12. 27.
백준 9095번 1,2,3 더하기 (C++) 백준 9095번 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 문제 설명 입력받은 정수들을 1,2,3으로 조합해서 몇가지가 있는지 출력 접근 DP로 접근 1 => 1가지 2 => 2가지 3 => 4가지 디폴트값 코드 #include #include #include #include #include #include #include #include #include using namespace std; int main(void) { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL.. 2021. 6. 2.