본문 바로가기
반응형

algorithm10

백준 #1244 스위치 켜고 끄기 이번 문제는 원래가 초등부 문제여서, 단순하게 지시된 대로 코딩해서 해결하면 되는 문제입니다. 난이도는 Silver I이고, 상당히 평이한 문제입니다. N개의 스위치가 있습니다. 초기에 이 N개의 스위치 상태가 주어집니다. 학생들에게 숫자를 하나씩 주면서, 그 숫자들을 기초로 해서 스위치의 상태를 바꿉니다. 남자의 경우에는 주어진 숫자들의 배수의 스위치들 상태를 바꾸고, 여자의 경우에는 주어진 숫자를 기준으로 상태가 같은 스위치들의 상태를 바꿉니다. 단순하게 지시된대로 문제를 풀어나가면 쉽게 통과를 할 수 있습니다. 전 출력할 때, 20개씩 한 줄에 표시한다를 읽지 않아서 한번 틀렸습니다. 제가 작성한 소스입니다. 소스는 참고용으로 봐주세요. //--------------------------------.. 2020. 1. 11.
백준 #1229 빅뱅의 여섯번째 멤버 이 문제는 수학적 법칙을 좀 생각해보면 더 빨리 풀 수 있을 것 같은데, 일단 복잡해서 패스를 했습니다. Gold IV 난이도이지만, 단순 무식한 방법으로 프로그램을 짰네요. 다각수라는 것은 도형을 확장하면서 생기는 점들의 수입니다. 3각수는 잘 알려져 있고, 이 값은 1부터 n까지의 합과 동일합니다. 여기서는 6각수가 나오는데, 6각수는 \(n(2n-1)\) 의 수식으로 표현되며, 1, 6, 15, 28, ... 형태로 늘어나는 수입니다. 이 6각수를 적절하게 더해서 모든 수를 표현할 수 있습니다. 6각수의 첫번째 수가 1이므로, 최악의 경우에는 1을 여러번 더할 수가 있습니다. 어떤 수가 주어졌을 때, 6각수를 몇개 가지고 표현할 수 있는지 알아보라는 것이 문제입니다. 수학적으로 분석을 할 필요가 있.. 2020. 1. 8.
#1017 소수쌍(네트워크 플로우) 처음 이 문제를 접했을 때에는 '혹시 쌍둥이 소수' 문제일까 하고 봤었네요. 소수쌍이 아니라 합이 소수가 되는 숫자들의 합 이야기입니다. 짝수인 N개가 주어지면, 합이 소수가 되는 쌍으로 모두 묶을 수 있다면, 첫번째 수와 묶일 수 있는 수들의 리스트를 내는 문제입니다. 난이도는 Platinum III이지만, 난이도보다는 쉬운 문제입니다. 물론 네트워크 플로우 알고리즘을 알고 있을 때에 한합니다. DFS 알고리즘으로도 풀 수 있지만, 그렇게 하면 시간초과가 납니다. 아래는 해당 문제의 링크입니다. https://www.acmicpc.net/problem/1017 1017번: 소수 쌍 지민이는 수의 리스트가 있을 때, 이를 짝지어 각 쌍의 합이 소수가 되게 하려고 한다. 예를 들어, {1, 4, 7, 10.. 2019. 12. 24.
프로젝트 오일러 #0 시작하며 프로젝트 오일러가 요즘 프로그래머(아 제가 좀 늦었을지는 모르겠지만)들에게 인기가 있어서, 프로젝트 오일러를 조금 다른 시각으로 풀어볼려고 합니다. 벌써 문제가 몇백개가 되어놓아서, 이 연재는 과연 얼마나 오래 걸릴지는 잘 모르겠습니다. 일단, 제가 가장 중요하게 생각하는 것은 효율성입니다. for 루프 등을 이용하면 쉽게 만들 수 있는 프로그램이지만, 여기서는 가장 효율적인 프로그램을 이용해서 만들어볼려고 합니다. 물론 한계가 있어서 가장 효율적인 프로그램이 안 될 수도 있겠지만요. 오일러 프로젝트를 검색했더니, 답을 넣으면 풀 수 있는 사이트가 있네요.(영문 사이트 : https://projecteuler.net/, 한글 번역 사이트 : http://euler.synap.co.kr/)제가 다른 프로그.. 2014. 12. 18.
728x90