알고리즘
-
프린터알고리즘/프로그래머스 2020. 10. 19. 00:33
출처 - https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr import java.util.LinkedList; public class Printer { public int solution(int[] priorities, int location) { int answer = 0; LinkedList queue = new LinkedList(); LinkedList flags = new LinkedList(); fo..
-
소수찾기알고리즘/프로그래머스 2020. 10. 19. 00:33
출처 - https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr package com.programmers; import java.util.*; /* 2 3 */ public class FindPrimeNumber { public int solution(int n) { // 11,12에서 시간초과 됨. /* * // 모든 수를 다 돌아서 시간 복잡도가 O(N)이다. * * int answer..
-
문제 24 - 평균보다 점수가 넘은 학생들의 비율알고리즘/알고리즘 기초 100제 2020. 10. 19. 00:18
// print avg // input : 7 100 95 90 80 70 60 50 // output : 57.143% import java.util.*; /* javac Youtube24.java -encoding UTF-8 평균보다 점수가 넘은 학생들의 비율. */ class Youtube24 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("Input the number of students"); int students = sc.nextInt(); int[] scores = new int[students]; int sum = 0; for(int i=0; i
-
문제 25 - N의 사이클 길이 구하기알고리즘/알고리즘 기초 100제 2020. 10. 19. 00:17
문제 N이 주어졌을때 N의 사이클의 길이를 구하시오(126 2+6=8 -> 68 6+8=14->84 8+4=12 -> 42 4+2=6 26 = 4번 class Youtube25 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int count = 0; int num = sc.nextInt(); int tempNum = num; int temp = 0; do{ temp = tempNum/10 + tempNum %10; tempNum = tempNum%10 * 10 + (temp %10); count++; }while(tempNum!=num); System.out.println(count); } }
-
N번째 소수 찾기알고리즘 2020. 10. 14. 17:42
public class PrimeNumber { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("입력하세요. "); int n = sc.nextInt(); int i; int count=0; int answer=2; // 2,3,5,7,11,13 // 소수 = 자기 외에 나누어 떨어지는 수가 있으면 안된다! while(true) { for(i=2; i
-
피보나치 수알고리즘/프로그래머스 2020. 9. 25. 17:29
문제 : 이 문제는 일반 지문 설명이 많이 부족했다. 단순히 n번째의 피보나치 수를 1234567로 나눈 나머지를 구하는 문제인줄 알았는데 코드 제출하니 7번부터 계속 타임아웃나서 다른 사람의 풀이를 보고 문제의 해답을 찾았다. > 각 피보나치 수를 1234567로 나눈 나머지의 값들을 다 더하는 거였다. 예) f(0) = 0, f(1) = 1, f(2) = f(1) %1234567 + f(0) % 1234567 = 1 + 0 = 1 f(3) = f(2) % 1234567 + f(1) % 1234567 = 1 + 1 = 2 다시 구한 나의 정답 class Solution { public int solution(int n) { if(n == 2){ return 2; } int[] fibo = new int..
-
N개의 최소공배수알고리즘/프로그래머스 2020. 9. 25. 15:11
문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. 제한 사항 arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. 입출력 예 arrresult [2,6,8,14] 168 [1,2,3] 출처 : https://programmers.co.kr/learn/courses/30/lessons/12953?langu..