목록코딩/알고리즘문제 (8)
책 읽다가 코딩하다 죽을래
📝 문제 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수입니다. 예를 들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 📑 제한 사항 n은 2 이상 100,000 이하인 자연수입니다. 📋 입출력 예 n return 3 2 5 5 📝 코드 function solution(n) { let mem..
문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 입력 첫 줄에 n (1 ≤ n ≤ 100,000)이 주어..
www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 위 문제의 정답이다. 코드에 대해 설명하기 전에 일단 이 문제에 규칙부터 알아가야한다. 빨간 선은 1을 중심으로 해서 각각의 두께를 나타낸 것이며, 파란색 원은 그 두께에서 가장 큰 수를 나타낸 것이다. 1번부터 N번 방까지 최소 몇개의 방을 지나는 것을 알기 위해서는 일단 각각의 두께마다 가장 큰 수가 몇인지를 알아야한다. 첫번째 두께는 1이 가장 큰 수이다. 두번째 두께는 7이 가장 큰 수이다. 세번째 두께는 19가..
www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 코드는 다음과 같다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { public static void main(String[] args..
www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net while문을 적절히 사용하여 푸는 문제다. 이 글을 포스팅 한 이유는 나는 이 문제를 가뿐히 성공했는데 남이 쓴 코드와 한번 비교해보니 배울 점이 있어서 포스팅한다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int..
https://www.acmicpc.net/problem/11502 11502번: 세 개의 소수 문제 문제 정수론(수학)에서, 세 개의 소수 문제(3-primes problem) 는 다음과 같은 추측을 말한다. '5보다 큰 임의의 홀수는 정확히 세 개의 소수들의 합으로 나타낼 수 있다. 물론 하나의 소수를 여러 번 더할 수도 있다.' 예를 들면, 7 = 2 + 2 + 3 11 = 2 + 2 + 7 25 = 7 + 7 + 11 5보다 큰 임의의 홀수를 입력받아서, 그 홀수가 어떻게 세 소수의 합으로 표현될 수 있는지 (또는 불가능한지) 알아보는 프로그램을 www.acmicpc.net 소수찾기의 알고리즘은 기본적으로 에라토스테네스의 체를 많이 이용한다 에라토스테네스의 체를 처음 들어보셨으면 아래의 글에 들어..
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 기본적인 소수찾기 문제이다 소수찾기의 알고리즘은 기본적으로 에라토스테네스의 체를 많이 이용한다 에라토스테네스의 체를 처음 들어보셨으면 아래의 글에 들어가 ppt를 읽고오면 도움이 될 것이다. 2020/02/28 - [알고리즘] - [소수 찾기]에라토스테네스의 체 [소수 찾기]에라토스테네스의 체 소수를 찾는 알고리즘 중 가장 많이 사용되고 있는 것은 에라토스테네스의 체입니다. 제가 직접 만든 ppt파일입니다. 2차 배포는 금지하며 개인 소장이나 교육 목적을 위한 용도..