문제 링크 https://www.acmicpc.net/problem/2941 문자열을 순회하며 매번 두자리씩 읽어와서 두글자짜리 알파벳이랑 비교해봅니다. 세글자짜리는 그 뒤에 따로 확인합니다. 정답 코드 123456789101112131415161718192021222324252627#include #include #include using namespace std; string abc[] = { "c=", "c-", "d-", "lj", "nj", "s=", "z=" };string s;int main() { cin >> s; int ans = 0; for (int i = 0; s[i]; i++) { string t = s.substr(i, 2); bool c = false; for (int i = 0..
문제 링크 https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 문제 KMP 알고리즘이 KMP인 이유는 이를 만든 사람의 성이 Knuth, Morris, Prett이기 때문이다. 이렇게 알고리즘에는 발견한 사람의 성을 따서 이름을 붙이는 경우가 많다. 또 다른 예로, 유명한 비대칭 암호화 알고리즘 RSA는 이를 만든 사람의 이름이 Rivest, Shamir, Adleman이다. 사람들은 이렇게 사람 성이 들어간 알고리즘을 두 가지 형태로 부른다. 첫 번째는 성을 모두 쓰고, 이를 하이픈(-)으로 이어 붙인 것이다. 예 www.acmicpc.net 파이썬을 이용했습니다. 문자열을 '-'를 기준으로 스플릿 한 후, 각각의 문자열에 대해 첫 글자를 출력합니다...
문제 링크 https://www.acmicpc.net/problem/11365 11365번: !밀비 급일 문제 당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면 해독된다는 것을 발견했다. 이 암호를 해독하는 프로그램을 작성하시오. 입력 한 줄에 하나의 암호가 주어진다. 암호의 길이는 500을 넘지 않는다. 마지막 줄에는 "END"가 주어진다. (END는 해독하지 않는다.) 출력 각 암호가 해독된 것을 한 줄에 하나씩 출력한다. 예제 입력 1 복사 !edoc doog a tahW noitacitsuf www.acmicpc.net 문자열을 뒤집은 후 출력하자. reverse 함수를 사용하면 편하다. 정답 코드 1 2 3 4 5 6 7 8 9 10 ..
문제 링크 https://www.acmicpc.net/problem/15360 15360번: Rasvjeta It is Advent season. There are M street lights in a street N metres long (the meters of the street are denoted with numbers from 1 to N). Each of the lights lights up the meter of the street it’s located in and K meters to the left and to the right of that www.acmicpc.net 하나의 가로등은 그 지점과 양쪽으로 K만큼 떨어진 지점까지 불을 밝힙니다. 앞에서부터 순서대로 보면서 빛이 안 들어..
문제 링크 https://www.acmicpc.net/problem/15361 15361번: Izbori In a land with developed democracy far, far away, presidential elections for the football association are taking place. This land consists of N counties, and each county has its own football association. There are M presidential candidates labeled with 1, www.acmicpc.net 각 자치주의 후보자 선호도가 주어집니다. 출력 해야하는 정답은 첫 번째로는 주어진 입력 그대로일 때 당선되는 후보를 출력..
문제 링크 https://www.acmicpc.net/problem/16211 다익스트라를 이용해서 풀 수 있는 문제입니다. 1) 백채원이 1번 지점에서 출발해 다른 모든 지점으로 가는 최단 거리(시간)를 구합니다. 2) 추종자 K명이 임의의 K개 지점에서 출발해 다른 모든 지점으로 가는 최단 거리를 구합니다. 3) 1번 지점을 제외한 모든 지점에 대해, 백채원이 추종자들보다 더 빠르게 도착할 수 있다면 정답에 추가합니다. 이 문제를 검색하시는 분들은 대부분 2)에서 막혀서 검색해보셨을 거에요. 생각보다 간단합니다. 다익스트라를 돌릴 때 K개 지점을 모두 큐에 넣고 시작하면 됩니다. 다익스트라의 원리가 현재까지 최단 거리임이 보장된 정점들의 코스트를 기반으로 아직 보장되지 않은 정점 중 코스트가 가장 작..
문제 링크 https://www.acmicpc.net/problem/16723 수학문제이다. 나는 아래처럼 풀었다. 정답을 $p$라 하고, $n$이 충분히 크다고 가정하자. $p = 2 + 4 + 6 + 8 + 10 + 12 + ... $ $= 2(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + ... )$ $= 2(1 + 3 + 5 + ... + 2(1 + 2 + 3 + ...) ) $ 이런식으로 짝수들을 계속 2로 묶어가며 수를 절반씩 줄여갈 수 있다. 이를 적당히 구현해보자! 정답 코드
문제 링크https://www.acmicpc.net/problem/16721 메모리 제한이 16 MB다.1번 풀이) 문제에서 준 조건을 활용한다.2번 풀이) 비트 마스킹으로 모든 쌍의 관계를 저장한다. 1번 풀이)문제에서 주어진 그래프는 완전그래프이고, 모든 triad가 balanced인 그래프(문제에서 주어짐)이다.이 말인즉슨, 임의의 노드 X와 임의의 서로 다른 두 노드 A, B에 대해, X-A, X-B의 관계를 각각 알고 있으면 A-B의 관계도 알 수 있다.따라서 우리는 한 노드 X를 기준으로 X와 다른 노드들간의 관계만 저장해주면 모든 관계를 구할 수 있게 된다. 2번 풀이)는 설명할 게 없으니 코드로만 올리겠습니다. 정답 코드1번 풀이) 2번 풀이)