반응형

공부 261

[Java] 백준알고리즘 #19532 수학은 비대면강의입니다

연립방정식의 해를 구하는 문제 다양한 방법이 있겠지만 나는 아주 무식하고 단순한 방법으로 해결했다. 먼저 전체 코드를 보자. 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 e = sc.nextInt(); int f = sc.nextInt(); for (int x = -999; x < 1000; x++) { for (int y = -999; y < 1000; y++) { ..

[Java] 백준알고리즘 #14215 세 막대

3개의 수를 입력받아서 만들 수 있는 가장 큰 삼각형의 둘레를 구하는 문제. 다만 막대는 줄이기만 가능하다. 먼저 삼각형을 만들 수 없는 조건을 알아보자. 두 변 길이의 합 < 나머지 한 변의 길이 인 경우는 삼각형을 만들 수 없다. (같은 경우는 직선이 된다.) 2 1 1 / 2 3 5 / 3 5 10 등과 같은 경우이다. 때문에 삼각형을 만들기 위해서는 가장 긴 변의 길이를 줄여나가야 한다. 2 1 1 / 2 3 5 / 3 5 10 의 경우 1 1 1 / 2 3 4 / 3 5 7 로 바꾼다면 삼각형을 만들 수 있다. 먼저 입력받은 세 수중 가장 큰 값을 a로 지정한다. int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); int tmp ..

미국 주식 고배당주 CLM (Cornerstone Strategic Value Fund Inc.)

2023년 10월 현재. 미국 주식중에 배당수익률이 높은 CLM이라는 종목에 대해 알아보자. CLM은 폐쇄형 펀드이다. 전 세계 주식시장에 투자하고 있다고 볼 수 있다. 주로 가치주 및 성장주에 투자하는 경향이 있다고 한다. 위 표에서 알 수 있듯이 기술에 가장 많은 투자를 하고 있고, 헬스케어, 금융, 경기순환주 등이 뒤를 잇는다. 상위 10개 종목이 포트폴리오의 37.77%를 차지하고 있으며 이 비중의 대부분이 기술주인 것을 알 수 있다. 이를 포함한 약 149개 종목에 투자를 진행한다. 이 종목의 가장 큰 메리트라고 생각하는 월 배당. 2023년 현재 한 주당 약 0.12USD로 책정되어 있고, 이는 1년으로 계산시 약 1.47USD에 해당한다. 현재 주가가 7.76USD이므로 약 18%에 해당하는..

투자/해외주식 2023.10.06

[Java] 백준알고리즘 #5073 삼각형과 세 변

삼각형의 세 변을 입력받고 어떤 삼각형인지 출력하는 문제이다. 먼저 전체 코드를 보면 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); while (true) { int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); if (a == b && b == c) { if (a == 0) break; System.out.println("Equilateral"); } else if (a + b

[Java] 백준알고리즘 #9506 약수들의 합

입력받은 n의 약수들의 합을 구해 n이 완전수인지 아닌지 판별하는 문제. 입력 개수가 정해져있지 않으므로 while문을 사용해 n을 입력받는다. n이 -1이라면 break문을 이용해 빠져나가게 한다. int sum = 1; String result = n + " = 1"; 약수들의 합을 저장할 sum 변수와 결과를 출력할 result 변수이다. 출력에서처럼 + 기호를 출력하기 위해 sum은 1로 초기화하고, result변수에는 = 1 이라는 값으로 초기화했다. 1은 모든 수의 약수가 되기 때문에 반드시 포함될 것이기 때문. 이후 for문을 이용해 2부터 n / 2 까지 반복한다 (반복횟수를 줄이기 위해) 나머지가 0이면 약수라는 점을 이용해 약수를 sum 변수에 차례로 더해주고, result 변수에도 +..

[Java] 백준알고리즘 #2501 약수 구하기

입력받은 수 n의 약수들 중에서 k번째로 작은 수를 구하는 문제. 먼저 결과를 출력할 result변수를 선언해 0으로 초기화한다 (존재하지 않는 경우 0 출력을 위해) 그리고 1부터 n까지 반복하며 전체 약수를 구한다. 약수는 n을 어떤 수로 나누었을 때 나머지가 0인 것이므로 간단히 구할 수 있다. 이때, count변수를 두어 약수를 발견할 때 마다 하나씩 증가시켜 주자. 이 count가 k와 같아지는 지점에서, count를 result변수에 넣어서 출력해주면 끝. 전체 코드는 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System...

[Java] 백준알고리즘 #2903 중앙 이동 알고리즘

정사각형이 중복 되니 마니 이래저래 말이 많지만 결국에는 점의 수를 구하는 문제. 규칙을 보면 초기상태 4 1번시행 9 2번시행 25 ... 인 것을 알 수 있다. 이것은 정사각형의 변의 중앙에 점을 찍는 방식이므로 한 변에 있는 점을 안다면 모든 점을 알 수 있다. 한 변의 점을 기준으로 초기상태 2 1번시행 3 2번시행 5 ... 이 된다. 이것을 공식화한다면 초기상태 2 1번시행 : 2 + 1 = 3 2번시행 : 3 + 2 = 5 3번시행 : 5 + 4 = 9 ... n번시행 : (n - 1번째 시행값) + (n - 1번째 실행값 - 1) 이 됨을 알 수 있다. 이제 n번 시행 후 나온 큰 정사각형에서 한 변에 있는 점의 개수를 알았으니, 이를 제곱해주면 모든 점의 수를 구할 수 있다. 이를 코드로..

[Java] 백준알고리즘 #2720 세탁소 사장 동혁

거스름돈으로 줄 동전의 개수를 구하는 문제. 아주 간단하다. 가장 큰 단위의 동전 부터 차례차례 나누어 몫을 출력하면 된다. 예를 들어 예제의 124 같은 경우 124를 25로 나눔 => 몫 4 나머지 24 24를 10으로 나눔 => 몫 2 나머지 4 4를 5로 나눔 => 몫 0 나머지 4 4를 1로 나눔 => 몫 1 나머지 0 이 몫을 차례대로 출력하면 4 2 0 1이 되겠다. 전체 코드는 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); int q = 25; int d = 10;..

[Java] 백준알고리즘 #11005 진법 변환 2

앞선 진법 변환 문제를 반대로 해 놓은 문제이다. 2023.10.05 - [Java/백준알고리즘] - [Java] 백준알고리즘 #2745 진법 변환 예시로 31이라는 수를 2진법으로 변환한다고 하면 31을 2로 나눈다 => 몫 15 나머지 1 15를 2로 나눈다 => 몫 7 나머지 1 7을 2로 나눈다 => 몫 3 나머지 1 3을 2로 나눈다 => 몫 1 나머지 1 1을 2로 나눈다 => 몫 0 나머지 1 즉 몫이 0이 될 때 까지 n으로 나누고, 나머지들을 역순으로 나열하면 n진법 수를 구할 수 있다. 전체 코드는 다음과 같다. import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc ..

[Java] 백준알고리즘 #2745 진법 변환

입력받은 수 b진법수 n을 10진법으로 출력하는 문제. 위 예제에서 보듯이 ZZZZZ 라는 36진법 수가 있다고 하면 이를 10진수로 바꾸는 과정은 다음과 같다. 먼저 Z라는 수는 36진법에서 35번째 수이다. 5번째 Z : 35 x 1 = 35 4번째 Z : 35 x 36 = 1,260 3번째 Z : 35 x 36^2 = 45,360 2번째 Z : 35 x 36^3 = 1,632,960 1번째 Z : 35 x 36^4 = 58,786,560 이를 모두 더하면 60,466,175 라는 값이 나오게 된다. 이를 공식화하게 되면 n번째 수 : 해당수 x 1 n-1번째 수 : 해당수 x 진법 n-2번째 수 : 해당수 x 진법^2 ... 이 될 것이다. 이를 반복문으로 나타내면 다음과 같다 int tmp = 1..

반응형