썸네일 GCD LCM = 유클리드 호제법 유클리드 호제법 최대공약수 gcd(a, b) = gcd(b, a% b) gcd(24,18) = gcd(18,6) = gcd(6,0) 즉 24와 18의 최대공약수는 6이 된다. gcd(30,22) = gcd(22,8) = gcd(8,6) = gcd(6,2) = gcd(2,0) 30과 22의 최대공약수는 2가 된다. 최소공배수를 구할 때는 a, b로 구하는 것이 아니다. 왜냐하면 a와 b의 값은 이미 유클리드 호제법에 의해 변경된 값이기 때문에 a = 6, b = 2이기 때문이다. 따라서 A와 B에 사용자가 입력한 원본의 값을 저장하고 그 값을 활용해야 한다. public class SBF_GCD_LCM { public static void main(String[]args){ // 유클리드호제법 Scanne..
썸네일 [Algorithm Jobs] 소수 판별 package com.practice; import java.util.Scanner; public class Pre_10 { public static void main(String[]args){ // 소수 판별 // n / 1 = n // n / n = 1 // 이렇게 두 경우만 소수이고, n / 2 = x ... 이렇게 나눠 떨어지는 경우는 소수가 아니다. Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 1부터 n를 제외하고 반복문을 돌려서 n/i로 나눠 떨어지는 경우 N를 출력 == 소수가 아니다. String str = ""; int cnt = 0; for(int i=2;i cnt 증가 7%2 != 0 7%3!= 0 7%4!= 0 7%5..
썸네일 [Algorithm Jobs] 윷놀이 import java.util.Scanner; public class Main{ public static void main(String[]args){ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int d = sc.nextInt(); int bae = 0; if(a==0)bae++; if(b==0)bae++; if(c==0)bae++; if(d==0)bae++; if(bae == 1) System.out.println("A"); if(bae == 2) System.out.println("B"); if(bae == 3) System.out.println("C"); if..
썸네일 [Algorithm Jobs] 약수 구하기 오답 노트 🤣 나의 풀이 아래 코드로 풀이하면 30점이 나온다. ✔ 굳이 배열을 사용할 이유가 있었을까? ✔ 테스트 케이스 하나를 기준으로 생각하지 말고 다양한 테스트 케이스를 생각해보고 그에 맞는 로직 짜 보자. ✔ 조건식(int i=1;i
썸네일 [Programmers/JAVA] 자연수 뒤집어 배열로 만들기 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr 😂 뭐가 틀렸나 보자 나의 로직 -> 최선은 다했답니다.. 1. 빈배열에 n을 담는다. -> long을 String으로 형변환을 먼저 해야 한다. 2. n을 반복문 + charAt으로 한 글자씩 새로운 배열에 담는다. -> n % 10을 하면 된다. 나머지는 제일 마지막 숫자가 나옴 (ex. 12345 % 10 = 5) -> n /= 10;을 하여 n의 값을 변경해준다. ( ex. 123..
썸네일 [Programmers/JAVA] 평균 구하기 https://programmers.co.kr/learn/courses/30/lessons/12944 코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr 나의 풀이 class Solution { public double solution(int[] arr) { double answer = 0; for(int i=0;i for each문으로 변경 배열의 처음부터 마지막까지 반복문으로 돌릴거니까, for each문을 사용하면 더 간결해질 것 같다. for e..
썸네일 [Programmers/JAVA] 핸드폰 번호 가리기 https://programmers.co.kr/learn/courses/30/lessons/12948 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr 😂 문제점 문제에 전화번호는 문자열 phone_number로 주어졌다는 것을 파악하지 못함 substring, lastIndexOf, replace 메소드를 모두 쓰려고 했다. 💡 정답 class Solution { public String solution(String phone_number) { String answer = ""; Str..
썸네일 [Programmers/JAVA] 직사각형 별찍기 https://programmers.co.kr/learn/courses/30/lessons/12969 코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr 나의 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); for(int i..
썸네일 [Programmers/JAVA] 짝수와 홀수 https://programmers.co.kr/learn/courses/30/lessons/12937 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 오답 class Solution { public String solution(int num) { String sol = ""; if(num>0){ if(num%2==0){ sol = "Even"; }else{ sol = "Odd"; } } return sol; } } 테스트 케이스는 통과했다. 하..
썸네일 [BOJ] 10817 | 세 수 https://www.acmicpc.net/problem/10817 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 오답 public class BOJ_10817 { public static void main(String[]args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()," "); int [] arr = new int[3]; for(int i=0;i
썸네일 [BOJ] 2438번 별찍기 package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BOJ_2438 { public static void main(String []args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); for(int j=1;j
썸네일 [BOJ] 5543번 | 상근날드 https://www.acmicpc.net/problem/5543 5543번: 상근날드 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[]args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamRea..