분류 전체보기
[백준-3009] 네 번째 점
네 번째 점 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 예제 입력 1 복사 5 5 5 7 7 5 예제 출력 1 복사 7 7 예제 입력 2 복사 30 20 10 10 10 20 예제 출력 2 복사 30 10 문제 분석 마지막 한 점 해결 각 X와 Y좌표는 3개씩 입력 받습니다. 각 좌표에 맞는 짝이 있으므로 마지막 좌표는 짝이 없는 좌표 값만 구하면 됩니다. 매칭 되는 값이 있으면 0이 되는 성질을 이용 비트 연산자 사용 1 2 3 4 5 6 x = y = 0 for _ in..
[백준-11653] 소인수분해
소인수분해 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 예제 입력 1 72 예제 출력 1 2 2 2 3 3 예제 입력 2 3 예제 출력 2 3 예제 입력 3 6 예제 출력 3 2 3 예제 입력 4 2 예제 출력 4 2 예제 입력 5 9991 예제 출력 5 97 103 문제 해석 입력받은 숫자 N을 소인수들의 곱으로 표현한다. 해결 정수 N에 대하여 √N 을 기준으로 나눠지는 수와 맞대응하는 숫자가 있다. 6 = 2 X 3 / 15 = 3 X 5 √N보다 낮은 정수의 경우 소인수 2부터 시작하여 0이..
[백준-1011] Fly me to the Alpha Centauri
Fly me to the Alpha Centauri 문제 우현이는 어린 시절, 지구 외의 다른 행성에서도 인류들이 살아갈 수 있는 미래가 오리라 믿었다. 그리고 그가 지구라는 세상에 발을 내려 놓은 지 23년이 지난 지금, 세계 최연소 ASNA 우주 비행사가 되어 새로운 세계에 발을 내려 놓는 영광의 순간을 기다리고 있다. 그가 탑승하게 될 우주선은 Alpha Centauri라는 새로운 인류의 보금자리를 개척하기 위한 대규모 생활 유지 시스템을 탑재하고 있기 때문에, 그 크기와 질량이 엄청난 이유로 최신기술력을 총 동원하여 개발한 공간이동 장치를 탑재하였다. 하지만 이 공간이동 장치는 이동 거리를 급격하게 늘릴 경우 기계에 심각한 결함이 발생하는 단점이 있어서, 이전 작동시기에 k광년을 이동하였을 때는 ..
[자바스터디] 5. 클래스
학습할 것 객체 지향 프로그래밍 클래스 정의하는 방법 구성요소 반환 자료형 속성 메서드 메서드 생성자 this 키워드 이해하기 접근 제어자 객체 만드는 방법 (new 키워드 이해하기) 클래스 vs 객체 vs 인스턴스 1. 객체 지향 프로그래밍 프로그래밍하는 이론 한 개 이상의 클래스들이 서로 유기적으로 동작하는 것 2. 클래스 객체 지향 프로그래밍에서의 기본 단위 하나의 틀(붕어빵을 만드는 기계) 클래스는 특정 기능이나 목적을 하는 객체를 표현하기 위한 설계도나 틀로 생각하면 좋을 것 같습니다. 이러한 설계도는 객체를 만들기 위한 사이즈나 내용, 어떤 기능이나 동작을 하는지가 담겨있습니다. 클래스 정의하는 법 [접근 제어자] [반환 데이터형] [메서드 이름] ( [매개변수]) {} 구성요소 반환 데이터 ..
[자바스터디] 4. 선택문, 반복문
학습할 것 선택문 if/else Switch/case 반복문 for for-each while do-while 제어 continue break 1. 선택문 if/else 참인지 거짓인지 확인하여 참일 경우에만 해당 블록 내부가 동작 (Ex. 홀수 짝수 분류) 1 2 3 4 5 6 7 8 9 10 11 12 public class Example { public static void main(String[] args) { int a = 4; if((a & 1) == 0) { System.out.println("짝수입니다."); } else { System.out.println("홀수입니다."); } } } 0~1은 변수 선언 및 저장이므로 2부터 if문 내부의 조건문 시작입니다. 여기서 볼 점은 if문에 대..
[자바스터디] 3. 연산자
학습할 것 산술 연산자와 대입 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 1. 산술 연산자와 대입 연산자 연산자 사용 예제 설명 = a = 3; 대입 연산자입니다. + b = a + 2; 변수a와 2를 더하여 b에 대입 - c = b - 2; 변수b에 2를 뺀 후 c에 대입 * d = c * 2; 변수c에 2를 곱한 후 d에 대입 / e = d / 4; 변수d에 2를 나눈 몫을 e에 대입 실수의 경우 나눈 값을 대입 % f = d % 4; 변수f에 2를 나눈 나머지를 e에 대입 실수의 경우 나머지를 대입 1 2 3 4 5 6 7 8 9 ..
[자바스터디] 2. 변수
학습할 것 변수란? 부동 소수점 BigInteger와 BigDecimal Wrapper 클래스프리미티브 타입 레퍼런스 타입 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 접미사(L, D, F) 리터럴 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 1. 변수 자료형: 우리가 사용할 내용의 그릇 변수명: 그 그릇의 이름 변수 핸들링: 어떤 내용을 사용하기 위해 그릇에 담고 그 그릇을 다루는 일 변수명은 사용 목적을 내포해야합니다. 2. 프리미티브 타입 비객체 타입 Type Name Byte 유효 저장 범위 기본 값 논리형 boolean 1bit 0(false) ~ 1(true) false 문자형 char 2bytes 0 ~ 2^(16)-1 '\u0000'..
[자바스터디] 1.1 컴파일과 실행하는 법
학습할 것 컴파일하는 법 실행하는 법 컴파일하는 법 1 2 3 4 5 6 7 8 package example; public class Example { public static void main(String[] args) { int a = 5; System.out.println("a는"+a); } } (Example.java) 위 예제로 컴파일과 실행하는 법을 다루겠습니다. 자바는 JVM을 통해 프로그램을 실행합니다. 따라서 고급언어로 작성된. java파일을 바이트코드인. class파일로 변경해야 합니다. 이 작업을 컴파일러를 통해 변경하게 되며 javac라는 명령어를 사용합니다. (javac는 JDK에 존재합니다) javac를 통해 .java ->. class로 변경해 줍니다. (Encoding Err..
[자바스터디] 1. JAVA와 JVM
학습할 것 JAVA란? JVM이란 무엇인가 바이트코드 vs 바이너리 코드 자바 동작 순서 JVM 구성 요소 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JDK와 JRE의 차이 1. JAVA란? 다양한 운영체제에 독립적으로 실행 가능한 언어 객체 지향 언어 독립적인 언어 (JVM 제공) 자바는 운영체제와는 독립적 실행가능 Garbage Collector를 지원하여 자동 메모리 관리등 안정성이 높다 연산자 오버로딩 금지, 제네릭 도입하여 가독성 높였다 멀티 스레드 프로그래밍을 지원 수많은오픈 소스를 찾을 수 있다. 자바는 임베디드 시스템을 위한 언어로 개발되었다. ( Ex. FPGA Eclipse BSP ) 2. JVM이란 무엇인가 프로그램을 실행시키는 프로그램이다. JVM (JAVA Virtual Mach..
[Live Study] 자바 스터디 목차
자바를 완전 처음 접하며 어떻게 시작할까 하다 백기선님의 온라인 스터디를 늦게나마 시작해보려 합니다. 관련 자료는 백기선님의 깃헙에서 찾아보시면 좋을 거 같습니다. whiteship/live-study: 온라인 스터디 (github.com) 주차별 과제 1주차 : JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 2주차 : 자바 데이터 타입 변수 그리고 배열 3주차 : 연산자 4주차 : 제어문 5주차 : 클래스 6주차 : 상속 7주차 : 패키지 8주차 : 인터페이스 9주차 : 예외 처리 10주차 : 멀티쓰레드 프로그래밍 11주차 : Enum 12주차 : 애노테이션 13주차 : I/O 14주차 : 제네릭 15주차 : 람다식 16주차 : 문자열 17주차 : 콜렉션 18주차 : 스트림