코딩 테스트
[JAVA] 최대 공약수(GCD), 최소 공배수(LCM) 구하기
최대 공약수 구하는 방법 1. 숫자가 2개인 경우 1) 두 수를 공약수로 계속 나눈다. 2) 공약수로 나눈 몫이 서로소가 되면 stop 3) 왼쪽 공약수를 모두 곱한다. ∴ 60 과 48의 최대 공약수 : 2 ✕ 2 ✕ 3 = 12 2. 숫자가 3개 이상인 경우 - 코드에서 배열이 매개변수로 주어지는 경우 1. 모든 수를 동시에 반드시 나눌수 있는 수로 나눈다. 2. 더이상 동시에 나눌 수 없으면 stop 3. 왼쪽 공약수를 모두 곱한다. ∴ 60, 48, 40 의 최대공약수 : 2 ✕ 2 = 4 최소 공배수 구하는 방법 1. 숫자가 2개인 경우 1) 두 수의 공약수로 나눈 몫이 서로소가 될 때까지 나눈다. 2) 왼쪽 공약수들과 아래 서로소까지 모두 곱한다. ∴ 60 과 48의 최소 공배수 : 2 ✕ 2..
[프로그래머스][Level2][JAVA] 수식 최대화
[문제 설명] https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr [풀이 과정] 문제를 해결하는데에 3가지 알고리즘 및 자료구조 지식을 이용했다. 1. 순열 2. 수식의 계산 - 중위표기법, 후위표기법 3. 스택 (2를 계산할 때 3이 사용된다.) 1. 순열 문제에서는 +, -, * 이 세가지 연산자의 우선순위를 자유롭게 재정의 하여 가장 큰 답을 만드는 계산식의 결과를 리턴하라고 한다. +, -, * 의 우선..
문자열
1. 소문자 대문자 치환 public static void main(String[] args) { String s = "KiMcHoWoN"; System.out.println("대문자로 : " + s.toUpperCase()); System.out.println("소문자로 : " + s.toLowerCase()); } 대문자로 : KIMCHOWON 소문자로 : kimchowon ** 알파벳 이외에 글자들은 toLowerCase(), toUpperCase() 메소드를 사용해도 원래 문자 그대로 반환
[프로그래머스] [Level2] [JAVA] 행렬의 곱셈
[문제 설명] https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr [풀이 과정] 행렬A와 행렬B 를 곱하기 위해서는 두 행렬이 다음 성질을 만족해야 한다. 1. 행렬A의 행의 길이(k)와 행렬B의 열의 길이(k)가 같아야 한다. 2. 두 행렬의 곱한 결과 행렬은 가로 세로가 (행렬B의 행 * 행렬A의 열) 이다. (m * n) 3. A * B 가 만족하듯이 B * A가 만족하려면 그림처럼 두 행렬..
[Level2] 피보나치 수
기본기가 탄탄해야 한다는 것을 다시 한 번 느낀다. [문제 설명] https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr [풀이 과정] 문제 풀이에 앞서 피보나치에 대해 간단히 기록하겠다. n의 피보나치 수는 n-1, n-2 피보나치 수를 포함..
Stream
1. 숫자로 이루어져있는 문자열 잘라 숫자 배열로 만들기. String s = "1 2 3 4"; int[] nums = Stream.of(s.split(" ")).mapToInt(Integer::parseInt).toArray(); // nums = {1,2,3,4};