본문 바로가기

전체 글132

10942번 - 팰린드롬?(dp, br, st) 문제: 풀이:먼저, 팰린드롬이 뭔지 알아야한다.(1, 2, 1), (a, b, c, b, a), (가, 나, 다, 나, 가) 등 대칭되는 문자들의 모음을 팰린드롬이라고 한다.문제에서 알려주지않아 햇갈릴 수도 있지만, (1, 1), (1, 2, 2, 1)도 팰린드롬이며, 문자의 수가 짝수든 홀수든 상관 없다. 자 그럼 문제에서 준 보기를 이용해 문제를 풀어보자.1213121이렇게 배열이 주어졌다.먼저 보기에서 설명하듯 숫자가 1개 있을 때는 모두 팰린드롬이다. 1(1)2(2)3(1)4(3)5(1)6(2)7(1)길이: 111221133112211팰린드롬?ppppppp숫자가 두개 있을 때는 앞 뒤만 비교하고 같은 수라면 팰린드롬이다. 1(1)2(2)3(1)4(3)5(1)6(2)7(1)길이: 1112211331.. 2024. 9. 12.
11066번 - 파일 합치기(dp) 문제: 풀이:11049번 - 행렬곱셈순서(dp) (tistory.com)위 문제와 매우 비슷한 문제이다.다른점이 있다면, 계산 방식이다.이 문제에서는 각 계산과정 발생한 합을 모두 더해서 그 최솟값을 구해야 한다.즉, 계산과정에서 발생한 합과, 계산 결과 두가지를 dp 배열에 저장해야 한다.직접 dp 배열을 그리며 설명하겠다. 먼저 파일 크기가 각각 40, 30, 30, 50이라면, 아래와 같이 시작할 수 있을 것이다. C1C2C3C41개4003003005002개        3개        4개         이제 파일을 2개씩 합쳐보자. C2부터 C4까지 자신보다 앞에있는 파일과 합칠 것이다.각 행은 다시 2개로 나눈다. 앞부분엔 합쳐진 파일의 크기, 뒷부분에는 파일을 하나로 합칠때 필요한 최소 비.. 2024. 9. 6.
14238번 - 출근기록(dp, dfs) 문제:A는 매일 매일 출근할 수 있다. B는 출근한 다음날은 반드시 쉬어야 한다. C는 출근한 다음날과 다다음날을 반드시 쉬어야 한다. 따라서, 모든 출근 기록이 올바른 것은 아니다. 예를 들어, B는 출근한 다음날 쉬어야 하기 때문에, "BB"는 절대로 나올 수 없는 출근 기록이다. 출근 기록 S가 주어졌을 때, S의 모든 순열 중에서 올바른 출근 기록인 것 아무거나 출력하는 프로그램을 작성하시오.첫째 줄에 출근 기록 S가 주어진다. S의 길이는 50을 넘지 않는다.S의 모든 순열 중에서 올바른 출근 기록인 것을 하나만 출력한다. 만약, 올바른 출근 기록이 없는 경우에는 -1을 출력한다. 풀이:올바른 출근기록 하나만 출력해야 하며, 각 출근 기록의 길이는 동일하다.즉, 올바른 순열이며, 출근 기록의 길.. 2024. 9. 3.
12996번 - Acka(재귀, dp) 문제: 풀이:일반적인 재귀로 풀기에는 너무 많은 반복이 발생한다.S의 범위가 크지 않은 것으로 보아 dp를 이용해 풀면 좋을 것 같다.그렇다면 어떻게 dp를 이용해야 할까? 아래 예시를 통해 알아보도록 하자. 입력: 3 2 1 1각 차례에서 노래를 선택할 수 있는 방법은 아래와 같다. 인원 1인원 2인원 31OOO2OOX3OXO4XOO5OXX6XOX7XXO총 7가지 방법을 선택할 수 있다. 주어진 입력에서 어떤 경우의 수로 앨범을 만들 수 있나 살펴보자. 일단 방식 1을 첫번째로 택해봤다.S인원1인원2인원33211210010000XXX방식1을 택하면 앨범이 만들어지지 않는다.계속해서 2번째 방식을 택해보겠다.S인원1인원2인원3인원1인원2인원3인원1인원2인원332112112112101101101100000.. 2024. 8. 31.