본문 바로가기

전체 글

(81)
[알고리즘] 백준 2869번 달팽이는 올라가고 싶다 Java https://www.acmicpc.net/problem/2869 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. Code import java.io.BufferedReader; import java.io.InputStreamReader; i..
[Java] Singleton Pattern 이란? (디자인 패턴) [Java] Singleton Pattern 이란? (디자인 패턴) 디자인 패턴이란? 디자인 패턴이란 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 문제들을 해결하기 위한 패턴들을 정의해 놓은 것이다. 그 중 GoF 디자인 패턴이 가장 유명하며, GoF 디자인 패턴은 크게 3가지로 분류된다. 객체의 생성과 관련된 Creational Pattern 생성패턴, 클래스나 객체를 조합하여 더 큰 구조를 만드는 Structural Pattern 구조패턴, 클래스 혹은 객체 사이의 책임분배에 대한 Behavioral Pattern 행위패턴이 존재한다. 그 중 Singleton Pattern은 생성패턴에 속한다. Singleton Pattern 이란? 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나..
[알고리즘] 백준 1193번 분수찾기 Java https://www.acmicpc.net/problem/1193 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. Code import java.io.BufferedReader; im..
[알고리즘] 프로그래머스 폰켓몬 Java https://school.programmers.co.kr/learn/courses/30/lessons/1845 문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있..
[알고리즘] 백준 2941번 크로아티아 알파벳 Java https://www.acmicpc.net/problem/2941 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-',..
[알고리즘] 백준 1065 한수 Java https://www.acmicpc.net/problem/1065 문제 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 예제 입력 1 110 예제 출력 1 99 예제 입력 2 210 예제 출력 2 105 Code import java.util.ArrayList; import java.io.BufferedReader; import java.io.InputStrea..
[알고리즘] 백준 4673 셀프 넘버 Java https://www.acmicpc.net/problem/4673 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런식으로 다음과 같은 수열을 만들 수 있다. 33, 39, 51, 57, 69, 84, 96, 111, 114, ..
[알고리즘] Java 틱택토 게임 (Tic Tac Toe) 어느 한 교육을 듣고있다. 그 교육에서 Java를 이용하여 3x3의 틱택토(Tic Tac Toe)라는 게임을 구현해 보는것이 과제였다. 사용자의 입력을 O 컴퓨터 입력을 X로 구현하였고, 메인 메소드에서 배열을 초기화 시킨 후, 메서드 들을 이용하여 while문을 사용하여 구현하였다. Code import java.util.Random; import java.util.Scanner; public class TicTacToe { public static void printGame(String[][] arr){ System.out.println(); System.out.println("----------------"); for(int i = 0; i < arr.length; i++){ for(int j = ..

728x90
반응형