Java-Algorithm 입출력 성능최적화, 괜찮은 기능 메모
2022. 8. 27. 00:34
알고리즘 저장소
BufferedReader - 1 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String inputValue = br.readeLine();한 줄에 해당하는 문자열 입력받을 수 있다. BufferedReader 사용하는 메서드에 throws IOException 추가. BufferedReader - 2 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String [] inputValue = br.readeLine().split(" "); 한 줄에 해당하는 문자열 공백을 기준으로 입력받을 수 있다. BufferedReader 사용하는 ..
프로그래머스 - 최대공약수와 최소공배수 (Level1, Java)
2022. 8. 27. 00:06
알고리즘 저장소
문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예 n m return 3 12 3, 12 2 5 1, 10 입출력 예 설명 입출력 예 #1 위의 설명과 같습니다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. 풀이 - 코드 public class Main { // 최대 공약수? : 서로가 가진 약수중 가장 ..
백준 - 1929번 소수 구하기(PrimeNumber Silver3, Java)
2022. 8. 6. 16:51
알고리즘 저장소
문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 예제 입력 1 3 16 예제 출력 1 3 5 7 11 13 풀이 - 오답 (Python) import sys from collections import deque input = sys.stdin.readline m, n = map(int, input().split()) numbers = list(i for i in range(2, n)) prime_numbers = deque() for i in range(2, len..
백준 - 11558번 The Game of Death (Graph, Silver4, Python)
2022. 7. 29. 16:06
알고리즘 저장소
문제 희현이와 주경이는 The Game of Death를 좋아한다. The Game of Death 규칙: 플레이어는 각자 한 명씩 지목을 한다(자신도 가능). 처음 시작하는 사람은 임의의 자연수 K를 말한다. 시작한 사람부터 지목한 사람을 차례대로 따라가다가 K번째 지목당한 사람이 걸리게 된다.희현이는 희현이부터 이 게임을 시작할 때 이 게임에서 반드시 주경이를 반드시! 걸리게 하고 싶다. 주경이가 걸릴 수 있도록 희현이를 도와주자. 입력 첫 줄에는 테스트 케이스의 숫자 T가 주어지며, 이어서 T번에 걸쳐 테스트 케이스들이 주어진다. 매 테스트 케이스의 첫 줄에는 플레이어의 숫자 N(1 ≤ N ≤ 10,000)이 주어진다. 이어서 N줄에 걸쳐 각 플레이어가 지명한 사람의 숫자 Ai(1 ≤ Ai ≤ N,..
백준 - 3077번 임진왜란 (Bruteforce, Silver 3, python)
2022. 7. 29. 14:50
알고리즘 저장소
문제 현우는 방금 선생님으로부터 역사 시험 결과를 받았다. 현우가 가장 열심히 공부한 문제는 임진왜란의 해전을 일어난 순서대로 적는 문제이다. 올바른 순서는 다음과 같다. 옥포 해전 2. 사천 해전 3. 한산도 대첩 4. 명량 해전 5. 노량 해전 현우는 정말 열심히 공부했고, 옥포 해전을 제외한 모든 해전의 날짜를 외웠다. 따라서, 현우는 옥포 해전이 가장 먼저 일어난 해전인지 마지막에 일어난 해전인지 생각해내지 못했고, 다음과 같이 결국 제일 마지막에 적고말았다. 사천 해전 2. 한산도 대첩 3. 명량 해전 4. 노량 해전 5. 옥포 해전 현우가 적은 정답은 모든 위치에서 정답과 일치하지 않는다. 따라서 5개 해전 중에 4개 해전의 순서를 올바르게 적었지만, 점수는 5점 만점에 0점이 된다. 현우는 ..
백준 - 11399번 ATM(Greedy, Silver4, Python)
2022. 7. 24. 13:54
알고리즘 저장소
문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. 1, 2, 3, 4, 5 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다. ..