코테(30)
-
[프로그래머스][자바(JAVA)] 최대공약수와 최소공배수 -모두의개발
※ 요약 - 두수의 최대 공약수와 최소 공배수를 배열로 반환하는 문제 ※ 참고 최대공약수 GCD(Greatest Common Divisor) 3과 12의 최대공약수는 3이다. 최소공배수 LCM(Least Common Multiple) 3과 12의 최소공배수는 12이다. 풀이1 (GCD 방식이 아닌 최대 공약수 구하는) 1. n의 약수라면 m의 약수 구하는 반복문 실행 2. m의 약수일때 answer[0]에 약수값 정의해준다 3. m 이 0 이아닐때 반복되는 while문 생성 후 유클리드 호제법이란 알고리즘을 사용하여 최대 공약수 구해준다 4. n(3) * m(12) / n(3) = 최대공배수 를 answer [1]에 정의해준 후 리턴한다 class Solution30 { public int[] solut..
2022.09.20 -
[프로그래머스][자바(JAVA)] 직사각형 별찍기 -모두의개발
※ 요약 - 별의 갯수가 가로 n 세로 m 만큼 출력하는 문제 풀이1 1. b만큼 반복해준다 2. a만큼 반복시켜 *을 a만큼출력 3. 다음칸으로 이동시켜준다 import java.util.Scanner; 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 = 0; i
2022.09.20 -
[프로그래머스][자바(JAVA)] 부족한 금액 계산하기 -모두의개발
※ 요약 - 입장권(price)는 탈때(count)마다 가격이 배가 되는데 원하는 만큼 놀이기구를 타려면 가지고있는 돈(money)가 얼마나 부족한지 구하는 문제 풀이1 1. count 만큼 배로 받을때 그합을 sum에 더하며 정의해줌 2. answer 에 가지고있는 money에서 sum값을 빼줌 3. answer값이 0보다 작으면 -answer을 아니면 0을 반환해줌 class Solution28 { public long solution(int price, int money, int count) { long answer = 0; long sum = 0; for (int i = 1; i
2022.09.18 -
[프로그래머스][자바(JAVA)] 행렬의 덧셈 -모두의개발
※ 요약 - arr 배열중 주어진 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 구하는 문제이다 풀이1 1. answer를 arr1으로 선언해줌 2. arr의 길이값만큼 반복 3. arr배열의 길이값만큼 반복 4. 각 위치마다 더해주고 리턴해준다. class Solution27 { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = {}; answer = arr1; // 1 for (int i = 0; i < arr1.length; i++) { // 2 for (int j = 0; j < arr1[i].length; j++) { // 3 answer[i][j] += arr2[i][j]; // 4 } } retur..
2022.09.18 -
[프로그래머스][자바(JAVA)] 약수의 개수와 덧셈 -모두의개발
※ 요약 - 주어진 두 숫자 사이의 각각의 숫자들의 약수가 짝수개이면 + 홀수개이면 - 이다. 이들의 수의 합을 구하는 문제 풀이1 1. left (13) ~ right(17)까지 반복 2. i가 j의 약수라면 cnt++ 3. cnt가 홀수라면 음수로 변경 4. answer 에 합을 구하여 리턴 class Solution26 { public int solution(int left, int right) { int answer = 0; for (int i = left; i
2022.09.18 -
[프로그래머스][자바(JAVA)] 문자열 다루기 기본 -모두의개발
※ 요약 - 주어진 문자열의 길이가 4 또는 6 이고 숫자로만 구성되어 있는지 확인하는 문제 풀이1 1. 문자의 길이값이 4,6 아니라면 false 2. match()함수를 통해 정규표현식과 동일한 패턴이면 true class Solution25 { public boolean solution(String s) { if(s.length() != 4 && s.length() != 6) return false; // *1* return s.matches("^[0-9]*$"); // *2* } } 풀이2 1. 문자의 길이값이 4,6 아니라면 false 2. 문자열 하나씩 반복해가며 '0'보다 적거나 '9'보다 크면 false 리턴 3. 위조건이 통과됬다면 true class Solution25 { public ..
2022.09.18