java
-
[백준 - 1436번] 영화감독 숌 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 9. 21:21
백준 알고리즘 1436번 영화감독 숌 문제를 Java로 풀어보자 살짝 문제를 이해하기가 힘들 수도 있다 영화감독 숌 씨는 네이밍 센스가 오지게 없으셔서 영화제목을 꼭 세상의 종말 + 666이 들어가게 만드신다는데, 두번째 편은 1666, 세번째 편은 2666, ... , 일곱번째 편은 6660, 여덟번째 편은 6661, ... 이렇게 만드신다는 건데, 살짝 생각하기 어려울 수도 있다. 여기서 적용시킨 알고리즘은 브루트포스로 완전탐색을 해서 문제를 풀었다. 성공한 코드는 다음과 같이 작성했다. import java.io.*; import java.util.*; public class sample { public static void main(String[] args) throws Exception { Bu..
-
[백준 - 1904번] 01타일 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 9. 20:50
우리 모두 BOJ 의 1904번문제 01타일을 풀어보도록 하자 문제 자체는 무척이나 간단하다 일단 2진 수열을 만드는 문제인데, 0은 없고, 00 만 있는 상황이다 예를들어, 크기 N = 1일 때, (1) 밖에 없으므로 수열의 개수는 1이고, N = 2 일 때, (11, 00) 으로 수열의 개수는 2개가 된다. N = 3 일 때, (111, 100, 001) 으로 수열의 개수는 3개가 된다. 매우 간단한 다이나믹 프로그래밍(Dynamic Programming) 문제이다. N = 3 일 때, 가능한 수를 보면, N = 1 일 때, 가능한 (1) 에다가 00 을 더한 100 N = 2 일 때, 가능한 (11, 00) 에다가 1을 더한 111, 001 이렇게 3개 이다. N = 4 일 때도 똑같이 N = 2 ..
-
입력(Input)이란 무엇인가? (Scanner과 BufferedReader 에 대해 이해하기) - JavaJava 2019. 7. 5. 16:02
기본적으로 프로그래밍에서 가장 중요한게 입,출력이다. 그중에서 입력은 받아오는 값들을 지칭한다. 오늘은 입력중에서도 시스템에서 받아오는 입력에 관해서 포스팅 하겠다. 그값이 정수형(..., -1, 0, +1, ...) 일 수도 있고, 문자형(char) 일 수도 있으며, 문자열(String)과 같은 클래스 형식일 수도 있다 그렇다면 Java에서는 이와같은 기본형태의 자료들을 시스템에서 어떻게 받아 올 수 있을까? 기본적으로 Scanner(java.util.Scanner) 나, BufferedReader(java.io.BufferedReader) 과 같은 클래스를 이용해서 받아올 수 있다 밑에 예시를 들여다 보자 Scanner sc = new Scanner(System.in); 위와같이 Scanner을 이용..
-
[백준 1712번] 손익분기점 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 4. 21:36
BOJ 1712번 손익분기점 문제를 풀어보도록 하자 일단 문제 자체는 매우 간단하다 여기서 주의해야할 점은 입력으로 주어지는 고정비용 A, 가변비용 B, 그리고 노트북 가격인 C가 21억 이하의 자연수 라는 점이다 Java의 자료형인 int는 범위가 -2,147,483,648 ~ 2,147,438,647이므로, 해당문제에서 사용해선 안된다. 그렇다면 좀더 큰범위를 가지는 자료형중 long(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)을 사용 해야한다 그리고 또한가지 주의 해야되는게 손익분기점이 존재하지 않으면 -1 을 출력해야 된다. 즉, (C - B)가 0보다 크면 판매량을, 그렇지 않으면 -1을 출력해야 된다 손익분기점이 존재하지 않으면 어떻게해...
-
[백준 2798번] 블랙잭 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 4. 21:17
BOJ 2798번 문제인 블랙잭을 불어보도록 합시다 개인적으로 블랙잭은 어느정도 짱구를 돌리면 내게 유리하게 만들 수 있는 게임이라 생각되서 좋아하기도 하고 즐겨하는 게임이기도 하다 21이라는 영화도 감명깊게 봤고,, 그래서 블랙잭 게임을 만들어보는 문제인가 했는데, 그건 아니고 완전 새로운 개념의 문제가 떡하니 나와서 살짝 아쉬웠다 하지만 그건그거고 한번 풀기로 마음 먹었으면 풀어보는게 인지상정!! 먼저 list에다가 입력받은 값들 중 M보다 큰 값들을 집어 넣었다. 그러고 나서 내림차순으로 정렬을 해주었다.. 리스트를 내림차순으로 정렬 할 필요는 없는데 조금 다르게, 특이하게, 풀려고 하다가 귀찮아 질 것 같아서 포기하고 정렬한 부분만 남겨뒀다 그이후에 카드3장을 반복문으로 get해서 가장 최댓값을 ..
-
[백준 3052번] 나머지 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 4. 20:47
백준 알고리즘 3052번 나머지를 Java로 풀어보자 총 10개의 수를 입력받고 그 수들을 42로 나누고 남은 나머지가 중복 되는지 체크하면 되는 문제다. 정답율이 70%가 넘는 아주 쉬운 문제이므로, 쉽게 쉽게 풀어보자 일단 chk 라고 하는 크기가 42인 boolean 배열을 만들어준다. boolean[] chk = new boolean[42]; 그리고 각각 받은 수를 42로 나눠서 중복되지 않는 값이면 count하고, 중복된 값이면 그냥 건너뛰게 만들어주면 되겠네!! import java.io.*; import java.util.*; public class sample{ public static void main(String[] args) throws Exception { BufferedReader..
-
[백준 17293번] 맥주 99병 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 6. 29. 17:34
BOJ 천하제일 코딩대회예선 C번 문제인 맥주 99병을 풀어봅시다 아니, 거 문제가 너무 긴거 아니오?? 일단 문제를 쉽게 해석해보면 처음에 자연수 N이 입력으로 주어지고, 처음에 벽에 K = N 만큼의 맥주 병이 있고, K bottles of beer on the wall, K bottles of beer. Take one down and pass it around, K-1 bottles of beer on the wall. K = 0 이 될때 까지 K를 빼주면서 위에 문장을 출력해주면 된다 예외상황으로, K = 2 일 때, 2 bottles of beer on the wall, 2 bottles of beer. Take one down and pass it around, 1 bottle of beer..
-
[백준 4949번] 균형잡힌 세상 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 6. 29. 17:03
이 세상이 균형잡힌 세상인지 알아봅시다 문제를 보자마자 LIFO 방식으로 접근하면 쉽게 풀 수 있을 것 같아서 stack을 이용했습니다 '(' 와 '[' 을 입력받았을 때 stack 에다가 집어넣고, ')' 와 ']' 를 입력 받을 때 stack에서 집어넣은 값을 꺼내서 균형잡혀 있는지 확인해 줬습니다 if(c == '(' || c == '['){ stack.add(c); } else if(c == ')'){ if(!stack.empty() && stack.pop() == '(') continue; else { chk = false; break; } } else if(c == ']') { if(!stack.empty() && stack.pop() == '[') continue; else { chk = f..