전체 글
-
[백준 - 17298번] 오큰수 -Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 12. 17:17
이번엔는 BOJ의 17298번 오큰수를 풀어보도록 하자 일단 크기가 N인 수열 A 를 입력으로 받고 각 원소 Ai 에 대해서 오른쪽에 있으면서 해당 원소보다 큰 가장 왼쪽에 있는 수를 출력하는 문제이다. 문제자체는 간단한데, 시간제한은 1초로 짧고, 입력으로 주어지는 수열A의 크기가 1,000,000(백만) 으로 꽤나 크다는 것을 알 수 있다. 즉, 그냥 루프로 돌려버리면 안된다는 것이다. 일단, 개삽질했다... 머리가 나빠서 그런지 될 것 같은데 계속 안되서 컴퓨터 부실뻔하다가 다시 처음부터 마음을 가다듬고 만들었다. 일단, 입력값을 받는 루프안에 모든 것을 해결하려고 했다. 그래서, LIFO 방식인 Stack을 이용해서 이전 값들을 비교하는 방식을 선택했다. 먼저, Int배열인 ans배열을 만들어 주..
-
[android] Android Studio 설치하기 //Wello Horld//Android 2019. 7. 10. 15:25
Android Studio 를 선택한 이유는 앞선 포스트에 설명해 놓았으니, 꼭 읽어 주시길 바랍니다 2019/07/10 - [안드로이드[android]] - [android] 왜 Android Studio 인가? //Wello Horld// 일단, 위에 링크를 눌러 들어가보면 아래와 같은 스크린이 뜰겁니다. 여기에서 네모난 버튼을 눌러서 다운로드를 진행하면 됩니다. 누르면, 밑에 첨부한 것과 같이 사용약관이 나오게 되고, 하단에 있는 "본인은 상기 사용 약관을 읽었으며 이에 동의합니다"를 체크하고 Android Studio 를 다운 받으시면 됩니다. 일단, 파일용량이 971MB 정도로 상당히 무거운데, 어쩔 수 없습니다. 받아야지... Android Studio의 단점으로 생각하는게, 너무 무겁다는 것..
-
[android] 왜 Android Studio 인가? //Wello Horld//Android 2019. 7. 10. 15:04
안드로이드 앱을 만들기 위해서는 가장 기본적인 Android Studio 부터 시작하는 것을 추천합니다. 왜 Android Studio 인가? 일단 구글에서 제공하는 IDE(통합 개발 환경 : Integrated Development Environment) 로서, 안드로이드 디바이스를 겨냥한 앱 개발을 위한 가장 빠른 툴을 제공한다. Github, Firebase 와 같은 외부 제품과의 연동이 매우 쉽다. 옛날, Eclipse를 사용할 때 보다 편한 인터페이스와 개발을 위해서 필수적인 요소중 하나인 정보를 찾기 용이하다는 점이 있다. 이외에도, 가장 많은 프로그래머들이 사용한다는 Java를 기반으로 하고 있다는 점등도 주요한 요소로 작용한다.(현재는 Kotlin 같은 언어로 갈아타고 있는 중이라 그에 대..
-
[백준 - 9461번] 파도반 수열 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 10. 14:25
이번에는 BOJ의 9461 번 문제 파도반 수열을 풀어보도록 하자 처음에 변의 길이가 1인 정삼각형부터 시작해서, 변을 이어가며 정삼각형을 그리는 문제이다. 일단, P(1) = 1, P(2) = 1, ... , P(10) = 9, P(11) = 12 가 되는 것이 그림으로, 예시로, 주어져있다. 입력으로는 테스트케이스 T가 먼저 주어지고, 각각의 테스트 케이스에 P(N) 의 N의 값이 주어진다. 출력으로 각 테스트케이스마다 P(N) 값을 출력해주면 되는 문제이다. 이문제를 풀때, 일단 N = 5 일때 까지는, 예외로 생각하고 문제를 풀었다. N = 6일 때부터 P(N) = P(N - 1) + P(N - 5) 가 되므로, 이를 이용해서 N = 1 부터 N = 100까지의 P[N]의 값을 먼저 구하게 해서,..
-
[백준 - 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 ..
-
[백준 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) 이라는 함수를 만들어서 계산을 진행했다. 계산은 정말 하드하게 하나하나 일일이 생각해서 안될경우 될경우 모두 코드로 나타내 주었다... 문제에 관한 생각법 자체를 간단하게 해서 코드가 길어지고 더러워 졌지만, 좀만 다듬으면 ..
-
입력(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을 이용..