본문 바로가기

Programming456

백준 #1254 팰린드롬 만들기 팰린드롬(Pallindrome)이라는 것은 앞에서 읽어도, 뒤에서 읽어도 같은 숫자나 단어가 되는 것을 말합니다. 예를 들어서 "a nut for a jar of tuna" 은 공백을 제거하면 팰린드롬이 되는 문귀가 됩니다. 이번 문제는 주어진 단어에 대해서 적절하게 단어 뒤에 문자를 추가하여 팰린드롬이 되는 단어가 되도록 하는 것입니다. 이 때, 가장 짧은 팰린드로의 길이를 찾아내는 문제죠. "abba" 와 같은 경우에는 자체로 팰린드롬이므로 4를 출력하면 됩니다. "banana" 라면 b만 추가하면 "bananab"가 되어 팰린드롬이 되므로 7을 출력합니다. 난이도 Silver II에 정답률 40.6%의 평이한 문제입니다. https://www.acmicpc.net/problem/1254 1254번:.. 2020. 1. 12.
백준 #1253 좋다 이 문제는 처음에 Gold III로 난이도가 설정되어 있어서 왜 이렇게 높지 했습니다. 정답률도 20.8%로 낮아서, 정답률도 상당히 낮네하면서 설마하고 제출했는데, 틀렸습니다가 나오네요. N 개의 수가 주어지는데, 자신을 제외한 다른 두개의 수의 합으로 자신이 이루어지면, 이 수의 개수를 출력하는 문제입니다. https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 가장 편하게 생각하는 것은 두개의 수 조합으로 set 자료형에 넣고서, 수가 이 set에 있는지 검사하는 방법입니다.. 2020. 1. 11.
백준 #1244 스위치 켜고 끄기 이번 문제는 원래가 초등부 문제여서, 단순하게 지시된 대로 코딩해서 해결하면 되는 문제입니다. 난이도는 Silver I이고, 상당히 평이한 문제입니다. N개의 스위치가 있습니다. 초기에 이 N개의 스위치 상태가 주어집니다. 학생들에게 숫자를 하나씩 주면서, 그 숫자들을 기초로 해서 스위치의 상태를 바꿉니다. 남자의 경우에는 주어진 숫자들의 배수의 스위치들 상태를 바꾸고, 여자의 경우에는 주어진 숫자를 기준으로 상태가 같은 스위치들의 상태를 바꿉니다. 단순하게 지시된대로 문제를 풀어나가면 쉽게 통과를 할 수 있습니다. 전 출력할 때, 20개씩 한 줄에 표시한다를 읽지 않아서 한번 틀렸습니다. 제가 작성한 소스입니다. 소스는 참고용으로 봐주세요. //--------------------------------.. 2020. 1. 11.
백준 #1230 문자열 거리 문자열 거리 문제는 "최장 공통 부분 문자열" 문제와 유사합니다. 동일하게 동적 프로그래밍 기법을 이용해야 하지만, 구현하려고 한다면, 조금 생각을 해야 합니다. 난이도는 Gold II 입니다. 정답률 32.7%의 문제네요. 정답자 40명정도로 난이도 책정된 것에 비해서는 상당히 적습니다. 문제의 내용을 두개의 문자열이 주어졌을 때, 첫번째 문자열에 원하는만큼 문자열을 삽입해서 두번째 문자열을 만들고자 할 때, 문자열 삽입을 최소로 하고자 하는 문제입니다. 예를 들어서 "abcd" 란 문자열과 "abNORMAL cOMEdY"란 문자열이 주어졌다면, ab 와 c 사이에 "NORMAL "이란 문자열과 c와 d 사이에 "OME"라는 문자열, 그리고 d 뒤에 "Y"란 물자열을 삽입해야 하기 때문에 최소의 문자열.. 2020. 1. 9.
백준 #1229 빅뱅의 여섯번째 멤버 이 문제는 수학적 법칙을 좀 생각해보면 더 빨리 풀 수 있을 것 같은데, 일단 복잡해서 패스를 했습니다. Gold IV 난이도이지만, 단순 무식한 방법으로 프로그램을 짰네요. 다각수라는 것은 도형을 확장하면서 생기는 점들의 수입니다. 3각수는 잘 알려져 있고, 이 값은 1부터 n까지의 합과 동일합니다. 여기서는 6각수가 나오는데, 6각수는 \(n(2n-1)\) 의 수식으로 표현되며, 1, 6, 15, 28, ... 형태로 늘어나는 수입니다. 이 6각수를 적절하게 더해서 모든 수를 표현할 수 있습니다. 6각수의 첫번째 수가 1이므로, 최악의 경우에는 1을 여러번 더할 수가 있습니다. 어떤 수가 주어졌을 때, 6각수를 몇개 가지고 표현할 수 있는지 알아보라는 것이 문제입니다. 수학적으로 분석을 할 필요가 있.. 2020. 1. 8.
백준 #1215 잘못 작성한 요세푸스 코드 꽤 재미있는 문제였던 것 같습니다. 요세푸스 문제를 해결할 때, 큐를 이용해서 매번 풀었는데, 모듈라 연산으로 풀 수도 있었구나를 생각하게 만들었네요. Platinum V 문제이긴 하지만, 적절한 알고리즘이 알려진 상태가 아니라는 점을 감안하면 좀 더 난이도를 높게 주는 것이 맞을 듯 하네요. 그런데 오리지널 코드 그대로도 통과가 되는 것 같은데, 만약 그렇다면, 오히려 난이도가 떨어져야 할지도 모르겠네요. 이번문제는 다음의 코드를 적절하게 바꾸어서 같은 결과를 나오게 하는 것입니다. 결과 검증하기도 좋습니다. 실제 코드를 실행해보면, 아주 큰 수에 대해서 그래도 기다려줄 수 있는 속도가 나오니까요. 요세푸스 문제는 큐를 배울 때, 자주 등장하는 문제입니다. 큐를 구현하고, 큐에 데이터를 넣고 빼는 것을.. 2020. 1. 7.
728x90