본문 바로가기

알고리즘/백준 알고리즘8

[백준] 9095. 1, 2, 3 더하기 JAVA Kotlin 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net ❓ 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. ✍🏻 JAVA import java.util.Scanner; public class Main { public static void main(String[] args) { int[] numbers = scannerFunc(); int[] dp = dpFunc(); .. 2024. 2. 1.
[백준] 27210. 신을 모시는 사당 JAVA 27210번: 신을 모시는 사당 칠할 수 있는 돌상의 개수에 제한은 없으며, 반드시 연속한(인접한) 돌상들만 칠할 수 있음(띄엄띄엄 칠할 수 없음)에 유의하라. www.acmicpc.net 💝 문제 신을 모시는 사당에는 신을 조각한 돌상 N개가 일렬로 놓여 있다. 각 돌상은 왼쪽 또는 오른쪽을 바라보고 서있다. 창영이는 연속한 몇 개의 돌상에 금칠을 하여 궁극의 깨달음을 얻고자 한다. 궁극의 깨달음을 얻기 위해서는 가능한 한 많은 금색 돌상들이 같은 방향을 바라보아야 한다. 방향이 다른 돌상은 깨달음에 치명적이다. 깨달음의 양은 아래와 같이 정의된다. | (왼쪽을 바라보는 금색 돌상의 개수) - (오른쪽을 바라보는 금색 돌상의 개수) | 창영이는 궁극의 깨달음을 얻을 수 있을까? 💝 예시 💝 풀이 설명 .. 2023. 1. 27.
[백준 알고리즘] 5597. 과제 안 내신 분..? 📎 JAVA로 풀었습니다. 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 📌 문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 📌 방법 인덱스가 30이고, 길이가 31일 배열을 생성 28개의 들어오는 값에 해당하는 인덱스의 숫자를 1로 변환 반복문으로 돌리며 1이 아닌 배.. 2022. 12. 15.
[백준 알고리즘] 문제 25501번 : 재귀의 귀재 https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 1. 힌트를 참고하자 public class Main{ public static int recursion(String s, int l, int r){ if(l >= r) return 1; else if(s.charAt(l) != s.charAt(r)) return 0; else return recursion(s, l+1, r-1); } public static int isPalindrome(String s){ return recursion(s, 0,.. 2022. 10. 6.
[백준 알고리즘] 문제 2869번 : 달팽이는 올라가고 싶다(JAVA) https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 1. 수식을 생각해보자. 1️⃣ A : 낮에 달팽이가 올라갈 수 있는 길이 2️⃣ B : 밤에 달팽이가 미끌어지는 길이 3️⃣ V : 달팽이가 올라갈 막대기의 길이 4️⃣ X : 올라가는 데에 걸리는 기간(날짜) // 1일차 낮 V = A // 2일차 낮 V = A - B + A // 3일차 낮 V = A - B + A - B + A // 4일차 낮 V = A - B + A - B + A - B + A 낮으로 기준을 잡은 이유는 낮에 마지막으로 올라가면 .. 2022. 10. 4.
[백준 알고리즘] 문제 4673번 : 셀프 넘버 (JAVA) 문제 링크 : https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 1. 셀프 넘버를 찾자. 1️⃣ n이라는 정수를 파라미터로 받는 selfNum 함수를 만듦. public static int selfNum(int n){} 2️⃣ sum의 초기값을 n으로 설정. : 셀프 넘버를 구하는 식을 살펴 보면, n값에 각 자리 수를 더하기 때문이다. (예 : d(15) = 15 + 1 + 5) public s.. 2022. 8. 23.
[백준 알고리즘] 문제 10718 Q. ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자. 출력 ) 두 줄에 걸쳐 "강한친구 대한육군"을 한 줄에 한 번씩 출력한다. 풀어 보기 + IntelliJ 돌려보기 ) public class Test10718{ public static void main(String[] args){ System.out.println("강한친구 대한육군"); System.out.println("강한친구 대한육군"); } } ※ 백준 알고리즘은 Main.java 임. 2022. 7. 28.
[백준 알고리즘] 문제 2557 Q. Hello World!를 출력하시오. 출력 ) Hello World!를 출력하시오. 풀어보기 + IntelliJ 돌려보기 ) package Level1; public class Test2557 { public static void main(String[] args) { System.out.println("Hello World!"); } } ※ 백준 알고리즘은 Main.java 임. 2022. 7. 25.