본문 바로가기

Java

(6)
[백준/1436번/java] - 영화감독 숌 처음엔 숫자를 직접 입력해서 규칙을 찾아보았는데.. 666,1666,2666,3666,4666,5666,6660~6669,7666,8666,9666 이렇게 한 사이클이 총 19개로 이루어져 있고, 20번째부터는 10666,11666,12666,13666,14666,15666,16660~16669, 17666,18666,19666 이런식으로 증가하는 것을 찾을 수 있다. 그러면 문제는 60666이 나오는 때 부터가 또 새로운 패턴을 가지게 된다. 그래서 생각했던 건, 들어오는 숫자를 19로 나누었을 때 몫이 맨 앞자리는 19로 나눈 몫, 그 뒷자리는 나머지.. 라고 생각을해서 첫 19개는 몫이 0 이고 나머지가 7 미만이면 나머지 자체를 붙이고, 7번째부터는 6660~6669 로 새롭게 부여하고, 그 이후..
[백준/7568번/java] - 덩치 문제에 대해서 먼저 이해를 해보자. 내가 중점을 두고 본 부분은 "만일 자신보다 더 큰 덩치의 사람이 k 명 이라면 그 사람의 덩치 등수는 k+1 이 된다" 이 부분이었다. 처음에 문제를 읽고는 x 좌표 y 좌표를 모두 비교해서 정렬을 해야하나.. 아니면 모든 좌표를 비교해야하나.. 고민을 했는데 위에 저 부분을 읽고 방향성이 잡혔다! 그래서 나온 코드는 아래와 같다. import java.util.Scanner; public class boj_7568 { /** * 1. x 좌표 비교하기 * 2. 비교하는 x 가 크면, y 비교 * 2-1. y 도 크면 자기보다 큰거임 * 2-2. y는 작다면 덩치가 같은거 -> 다음비교로 넘어가기 */ public static void main(String[] arg..
[백준/1676번/java] - 팩토리얼 0의 개수 처음 문제를 읽고 나서 문제를 이해하는데에 조금 시간이 걸렸다! 저게 뭔소린지.. 근데 10! 을 해보면 362800 이 나오는데 맨 오른쪽에 0이 두개! 그래서 2가 출력된다고 이해해보자. 만약 문제가 무슨 소리인지 모르겠어서 찾아봤다면, 아래를 읽어보기 보다는 다시 문제를 살펴보고 오는것이 좋을 것 같다. 첫번째 접근 방식은 다음과 같았다. /** * 1. N 입력받음 * 2. for 문으로 팩토리얼 계산 / 재귀 함수를 이용해서 만들기 * 3. 10으로 나눈 나머지가 0 이 아닐 때 까지 나누고 갯수 세기 */ 왜 10으로 나누게 되었냐면 362800 은 100의 배수이므로 10으로 두번 나눌 수 있고, 그 이후에는 10으로 나누어 떨어지지 않는다는걸 확인할 수 있다. 그래서 while 문을 이용해..
[백준/2292번/java] - 벌집 import java.util.Scanner; public class Main { /** * 1. N 입력받기 * 2. N 이 어디에 속해있는지 확인하기 (while 문으로) * 3. 계산 알고리즘에 따라 계산하기 * 3-1. N 이 1 이면 1출력 * 3-2. 아닌경우 알고리즘에 따라 * 4. 겹수 출력 */ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int num = 2; int x = 1; while(true){ if(N == 1){ num = 1; break; } if(N > (6*x)+1){ x += num; num++; }else{ break; } } ..
자바의 기본 입출력 System표준 입력(키보드), 표준 출력(모니터) 및 오류 출력 기능을 제공합니다. 다음과 같은 클래스 멤버를 가지고 있습니다.public static final InputStream inpublic static final PrintStream outpublic static final PrintStream errSystem.out출력 스트림에 다양한 데이터 값을 편리하게 출력하는 기능System.out.println()출력할 인자와 개행 정보를 표준 콘솔 장치에 전달하는 함수System.out.print()출력하고 줄바꿈 하지 않는 함수System.out.printf("이름 : %1$s, 나이 : %2$d", "김자바", 25); System.out.println(); System.out.printf(..
자바의 데이터 타입 데이터 타입에 대해서 알아보겠습니다. 데이터 타입이란? --> 자료에 대한 형태를 지정하는 것입니다. 데이터 타입의 역할은? --> 데이터가 가질 자료형을 지정하고 데이터가 가질 메모리 크기를 지정합니다. 데이터 타입의 종류에는 기본형 데이터 타입(primitive data type) 과 참조형 데이터 타입(reference data type) 이 있습니다. 먼저 기본형 데이터 타입 에 대해 알아보겠습니다. 기본 타입의 크기는 CPU나 운영체제에 따라 변하지 않는다는 특징을 가지고 있습니다. 참조형 데이터 타입 에는 String 클래스가 있는데 문자열은 기본타입이 아니고 String 클래스로 문자열을 표현할 수 있습니다. String toolName = "JDK"; 다음과 같이 선언할 수 있으며 문자열이..