프로그래밍
-
[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을 이용..
-
[백준 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해서 가장 최댓값을 ..