본문 바로가기
반응형

알고리즘63

#1286 부분 직사각형(구현) 이번 문제는 Gold IV 난이도 문제네요. N개의 줄에 M개의 글자가 각자 써져 있는 문자들을, 3번 복사를 해서 2N개의 줄에 2M개의 글자가 써져 있는 문자들로 만든 다음, 직사각형을 선택해서 부분 문자열들을 만드는 작업을 할 때, 모든 부분 직사각형에 나타나는 문자들의 빈도를 계산하라는 문제입니다. 예를 들어서 ABCD EFGH 라는 2줄에 걸쳐 각각 4글자씩의 문자열이 주어졌다면, 3번 복사를 해서 ABCDABCD EFGHEFGH ABCDABCD EFGHEFGH 를 만들고, 직사각형을 선택해서 필요한 부분문자열을 만듭니다. 예를 들어서 왼쪽위가 (1, 1), 오른쪽 아래가 (3, 2) 직사각형이 있다면, ABCDABCD EFGHEFGH ABCDABCD EFGHEFGH 가 선택되어서, F 글자의 .. 2020. 1. 15.
#1276 교각 놓기(정렬) 이번 문제는 Gold V 등급 난이도라고 되어 있지만, 문제 자체는 아주 쉽습니다. 영어가 제공되는 문제들의 특징들이 문제가 명확하게 설명되어서, 굳이 한글이 번역되지 않은 문제라도 풀만합니다. 2차원상에 다리가 있는데, 이 다리에 교각을 놓으려고 합니다. 다리 밑에 다른 다리가 있는 경우 거기까지만 교각을 세우면 됩니다. 이 때 교각의 총 길이를 계산하면 됩니다. 예를 들어서 다음과 같이 다리가 있다고 해보죠. 왼쪽 그림에서 총 다리가 3개가 있는데, 이 다리에 교각을 내려놓으면, 다른 다리에 얹히는 경우 실제 다리 높이보다 짧은 길이의 교각을 세우게 됩니다. 그렇게 해서 만들어진 교각이 오른쪽 그림입니다. 영어 문제에서는 다리가 서로 겹쳐있지 않다고 했으니까, 예외를 생각하지 않아도 됩니다. 서로 겹.. 2020. 1. 14.
#1256 사전(Combination Digit) 이번 문제는 사실상 조합을 찾아내는 문제입니다. 그런데 조합을 찾기 위한 숫자가 좀 큽니다. 그래보았자, 100이지만요. 난이도는 Gold IV입니다. 정답률은 28.5%이긴 하지만, 크게 어렵지 않았다고 생각했습니다. 문제의 내용을 정리하자면, N개의 a 문자와 M개의 z 문자를 조합하여 사전순으로 배열할 때, K번째 문자열을 출력하는 문제입니다. 예를 들어서 3개의 a와 2개의 z가 있다면 다음과 같이 사전순으로 나열할 수 있습니다. aaazz aazaz aazza azaaz azaza azzaa zaaaz zaaza zazaa zzaaa 이렇게 해서 총 10개의 문자열이 나옵니다. 10개의 문자열이 나온 이유는 5개의 공간 중에 2개의 공간을 선택해서 그곳에 z를 채우고, 나머지 공간에는 a로 채우.. 2020. 1. 13.
백준 #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.
728x90