Algorithm
-
[백준 - 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 ..
-
[백준 17300번] 패턴 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 9. 20:34
BOJ의 가장 최신문제인 17300번 패턴을 풀어보자 일단, 문제가 오지게 길다 풀어서 설명해 보자면, 안드로이드의 패턴 형식이 적절한지 아닌지 판단하는 문제로, 일단 3X3 으로 구성된 잠금화면이 주어진다. 입력으로 주어지는 수열을 통해 유효한 패턴이면 "YES" 를 아니면 "NO" 를 출력하면 되겠다 일단 주어진 수가 중복되는지 알려줄 boolean배열인 numberDup, 이전 수를 집어넣을 pre, 답이무엇인지 체크해줄 chk를 먼저 지정해주고, amhoChk(int cur) 이라는 함수를 만들어서 계산을 진행했다. 계산은 정말 하드하게 하나하나 일일이 생각해서 안될경우 될경우 모두 코드로 나타내 주었다... 문제에 관한 생각법 자체를 간단하게 해서 코드가 길어지고 더러워 졌지만, 좀만 다듬으면 ..
-
[백준 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..
-
[백준 17295번] 엔드게임 스포일러 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 6. 29. 16:24
제 3회 천하제일 코딩대회예선의 첫번째 문제 [엔드게임 스포일러] 문제를 풀어보자 그냥 문제에 있는 어벤져스: 엔드게임의 영문표기를 출력만 하면 되는 문제이네요,, import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws Exception { System.out.println("Avengers: Endgame"); } } 나중에 있을 천하제일 코딩대회에 입선을 향해 한 발걸음 내딛어 봅니다 문제 : https://www.acmicpc.net/problem/17295