알고리즘테스트
-
[JAVA] 1476번: 날짜 계산카테고리 없음 2021. 7. 19. 15:59
문제 설명 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된..
-
[JAVA] 1929번: 소수구하기Algorithm/백준 알고리즘 2021. 7. 12. 15:01
문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 풀이 1. 숫자의 √N까지 확인하는 방법을 사용하여 문제를 해결한다. 2. √N의 값은 N의 약수를 나열한 값들 중 중간에 위치한다. 따라서 2에서 부터 √N까지의 값을 검색한 이후의 값은 확인할 필요가 없다. 3. 시간복잡도는 O(√N)이 된다. 편리하게 계산하기위하여 값에 제곱을 곱하여 계산하였다. 코드 /* 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. */ import j..
-
[JAVA] 10430번: 나머지Algorithm/백준 알고리즘 2021. 7. 12. 10:14
문제 설명 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 출력 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다. 풀이 1. 왜 같은지를 수학적으로 이해만 하면 되는 쉬운 문제이다. 세개의 수 A, B, C를 입력받고 각각의 식을 출력문에 기입하여 화면에 출력하면 문제해결! 코드 /* (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)..
-
[JAVA] 17298번: 오큰수Algorithm/백준 알고리즘 2021. 7. 8. 17:44
문제 설명 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,0..
-
[JAVA] 10799번: 쇠막대기Algorithm/백준 알고리즘 2021. 7. 7. 17:22
문제 설명 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다. 이러한 레이저와 쇠막대기의 배치는 다음과 같이 괄호를 이..
-
[JAVA/Level1] 짝수와 홀수Algorithm/프로그래머스 2021. 6. 1. 20:39
문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" 풀이 1. num의 숫자가 홀수일 경우 Odd를 return하고, num의 숫자가 짝수일 경우 Even을 리턴한다. 2. num은 파라미터로 값을 받기 때문에 조건문을 사용하여 num이 짝수인지 홀수인지 판단해야한다. 3. 짝수와 홀수를 구분하기 위하여 조건식을 num % 2 == 0으로 설정한다. 해당 조건문은 num을 2로 나누었을때 나머지의 값이 0인 값일 경우 조건문 내부 구문을 실행한다. 4. num이 짝수일 경우 answer의 값에 "Ev..