본문 바로가기

백준6

12969번 - ABC(bfs, dp) 문제: 풀이:문자열 ABC의 유효한 쌍은 'AB', 'AC', 'BC'이다.A만 입력시에는 유효한 쌍이 없고,AB까지 입력시에는 유효한 쌍이 ABABC까지 입력시에는 유효한 쌍에 AC, BC가 추가된다.위 예시를 통해 알 수 있는 것은 아래와 같다.A 입력시 고려할 것은 없다B 입력시 앞에 있는 A의 수만 고려하면 된다.C 입력시 앞에 있는 A, B의 수를 고려해야 한다.C를 문자열의 앞 부분에 추가할 때 고려해야 할 것은 없다.즉, A의 수, B의 수, C의 수, 유효한 쌍의 수 4개를 기록해 놓으면, 다음 문자를 추가할 때 계산을 편하게 할 수 있다.계산 과정은 아래와 같다.기록한 정보를 꺼내온다.유효한 쌍의 수가 K와 같다면, "C * (N - (A + B + C의 수) ) + 만들어진 문자"를 출.. 2024. 9. 13.
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.
2616번 - 소형기관차(dp) 문제: 풀이:각 소형 기관차가 끌 수 있는 객차 수를 3칸이라고 하자.객차의 수는 12개로 각 객차에 타있는 손님 수는 35, 40, 50, 10, 30, 45, 60, 20, 10, 50, 40, 70 이다.그렇다면 아래와 같은 전제를 도출할 수 있을 것이다.각 소형 기관차가 끌 수 있는 최대 인원은 연속되는 객차 3개의 인원의 합이다.고로 1~3번째 객차, 2~4번째 객차....10~12번째 객차만 고려하면 된다.두 소형 기관차가 끌 수 있는 최대 인원은 객차 6개의 인원의 합이다.고로 1~6번째 객차, 2~7번째 객차....7~12번째 객차만 고려하면 된다. 모든 소형 기관차가 끌 수 있는 최대 인원은 객차 9개의 합이다.고로 1~9번째 객차, 2~10번째 객차....4~12번째 객차만 고려하면 된.. 2024. 8. 19.
2281번 - 데스노트(dp) 문제: 풀이:'계산할 때 제일 마지막 줄은 앞으로 이름을 적을 기회가 있으므로 계산하지 않는다.' 라는 말에 유의하자.마지막까지 마지막줄은 포함해서 계산하지 않아도 된다는 말이다.즉, 판단해야할 사항은,지금 몇번째 이름을 적고있는지지금 줄에 몇개의 글자가 적어져있는지지금까지 남게 되는 칸 수의 제곱의 합이 얼마인지(마지막줄 빼고!!)나는 다음 과정과 같이 문제에 접근했다.맨 처음 이름을 기입한다.xxxxxxx             칸이 남는다면, 두번째 이름을 바로 옆에 기입한다. 아직 마지막줄이므로, 제곱의 합 0이다.xxxxxxx xxxx        또한 두번째 이름을 밑에도 기입해본다. 이때는 제곱의 합이 13 x 13일 것이다.xxxxxxx             xxxx              .. 2024. 8. 16.