반응형

Problem Solved/BOJ

    [BOJ][Java] 2609번 - 최대공약수와 최대공배수

    [BOJ][Java] 2609번 - 최대공약수와 최대공배수

    문제 백준 2609번 문제: 최대공약수와 최대공배수 문제 설명 최대공약수와 최소공배수를 구하는 문제 최대공약수를 구하고 그것을 바탕으로 최소공배수를 구하면 된다. 최대공약수와 최소공배수는 아래와 같이 큰 값에서 작은 값의 나머지 값을 구해 0이 될 때까지 반복해서 구할 수 있다. 성공 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int first = sc.nextInt(); int second = sc.nextInt(); sc.close(); int big = Math.max(first, second); int small =..

    [BOJ][Java] 11653번 - 소인수분해

    문제 백준 11653번 문제: 소인수분해 문제 설명 소인수분해를 배우는 문제 정수 N이 주어졌을 때, 소인수분해하는 문제 말 그대로 소인수분해를 하는 문제이다. 나는 반복문을 안쓰고 싶었어서 재귀함수를 사용해 풀었다. 소인수분해를 해야 하는 수가 A라고 하면 A가 1이 되어 더 이상 나눌 수가 없을 때까지 재귀함수가 돌고 그 안에서는 A를 2부터 시작해서 1씩 커지도록 하는 숫자를 나눠 가며 소인수를 구해 나갔다. 재귀함수를 쓰면서 스택오버플로우 에러가 많이 나서 조심히 써야 할 것 같다. 성공 코드 import java.util.Scanner; public class Main { static int i = 2; public static void main(String[] args) { Scanner sc..

    [BOJ][Java] 1037번 - 약수

    문제 백준 1037번 문제: 약수 문제 설명 약수의 성질을 활용하는 문제 입력받은 수들을 약수로 가지는 수를 찾는 문제이다. 예로, 50의 약수를 찾아 본다면 아래와 같다. 2 5 10 25 더 큰 수인 80은 아래와 같다. 2 4 5 8 10 16 20 40 여기서 규칙을 찾을 수 있다. 만약 약수들이 배열에 담겨 있다면 인덱스가 0번인 수와 n-1(가장 끝의 인덱스)를 곱하면 원래의 찾으려는 수가 나온다. 그럼 다른 케이스를 찾아 보자. 9는 약수가 3뿐이다. 그렇기 때문에 인덱스가 0일 때와 n-1일 때의 숫자가 자연적으로 같다. 3*3이 되어 원하는 수를 찾을 수 있다. 하지만 이 약수들은 정렬되어 들어오지 않는다. 그래서 정렬이 필요하다. 성공 코드는 아래에서 볼 수 있다. 성공 코드 impor..

    [BOJ][Javascript/nodejs] 1991번 - 트리 순회

    [BOJ][Javascript/nodejs] 1991번 - 트리 순회

    문제 백준 1991번 문제: 트리 순회 알고리즘 문제를 풀 때 javascript에서 주의해야 할 사항들 입력받을 때 prompt나 setPrompt 를 사용하면 틀렸습니다가 뜬다. readline을 통해 입력받으면 줄이 나뉘어져 있어도 무한정으로 계속 입력을 받는다. 예로, 입력이 8줄에서 끝난다면, 8줄 입력받은 후의 지점에서 close를 꼭 시켜줘야 한다. 그래서 while문을 쓰지 않아도 된다. 문제 설명 이진트리의 루트, 왼쪽, 오른쪽 값이 계속 들어오는 값을 트리로 만들고, 트리를 전위 순회, 중위 순회, 후위 순회를 한 결과를 한 줄에 하나씩 출력하는 문제 전위 순회(preorder) : (root -> left -> right) 1->2->4->5->3 중위 순회(inorder) : (le..

    [BOJ][Java] 5086번 - 배수와 약수

    문제 백준 5086번 문제: 배수와 약수 문제 설명 배수와 약수를 배우는 문제 말 그대로 배수와 약수, 둘 다 아닌 것을 판별해야 하는 문제이다. Scanner로 각 줄의 첫번째 수와 두번째 수를 first, second 변수에 담는다. 만약 first, second 모두 0이면 반복문을 멈춘다 두 수는 judgeNumber 함수에서 수 판별을 받는다. if문으로 각 수들이 조건에 따라 나눠지는지 판별해 결과를 result 변수에 담아 반환한다. 성공 코드 import java.util.Scanner; public class BOJ5086 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder..

    [BOJ][Java] 1541번 - 잃어버린 괄호

    문제 백준 1541번 문제: 잃어버린 괄호 문제 설명 식의 값을 가능한 한 작게 만드는 문제 -를 기준으로 - 연산을 하는데, 이 때 연산하는 값은 +연산이 된 값들이다. 그래서 처음에 -로 나눠서 배열에 넣고 나머지 +로 연결된 문자열은 plus 리스트에 +로 나눠서 정수형으로 변형해서 담아준다. 단, 배열의 첫 번째 값은 무조건 더해 줘야 해서 예외 처리를 해 줬다. 배열의 첫 번째 값이 아니면 빼주면 된다. 성공 코드 import java.util.Arrays; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors; public class Main { public static void main(Strin..