반응형

java 32

[ JAVA 수업 DAY 05 ] 클래스와 메소드

(클래스와 메소드의 기본적인 내용은 생략하고, 수업시간 내가 잘 알아둬야 할 내용을 필기한 위주로 정리했다.) 클래스 - 모든 객체들의 생산처 - 클래스 = 객체를 생성하는 틀 - 프로그래밍이 쓰이는 목적을 생각하여 어떤 객체를 만들어야 하는지 결정한다. - 각 객체들이 어떤 특징(속성과 동작)을 가지고 있을지 결정한다. - 객체들 사이에서 메세지를 주고받도록 만들어준다. 메소드 메소드 내에 return은 꼭 맨 마지막에만 들어오는 것은 아니다. void aaa() { print(‘A’); print(‘B’); return; print(‘C’); print(‘D’); } => 이럴 경우 C와 D는 출력하지 않고 호출자메소드로 돌아감. return 값은 대입 연산자를 통해서만 받아올 수 있다. ex) in..

Programming/Java 2020.05.05

[ JAVA 수업 Day 04 ] 배열

(배열의 기본적인 내용은 생략하고, 수업시간 내가 잘 알아둬야 할 내용을 필기한 위주로 정리했다.) 배열 배열이란? - 같은 종류의 데이터를 저장하기 위한 자료구조 - 크기가 고정되어 있다(한번 생성된 배열은 크기를 바꿀 수 없다) - 배열을 객체로 취급 - 배열의 요소를 참조하려면 배열이름과 색인(index)라고 하는 int 유형의 정수값을 조합하여 사용한다. 참조변수 배열 참조변수 배열의 경우 stack에 변수이름으로 된 공간이 생기고 Heap에 그 크기 개수만큼의 공간이 생긴다. 각 공간에 문자열을 할당하면 그 공간이 각각의 문자열을 저장한 heap 공간의 주소를 가리키게 된다. Strring[] strArr; // => stack에 공간 생성 strArr = new String[3]; // => ..

Programming/Java 2020.05.04

[ JAVA 수업 DAY 02 - 03 ] Java 반복문과 조건문

무한 루프 생성법 // while문 while(true) { } // for문 for( ; ; ) { } break문의 3가지 역할 break는 반복문과 switch 문에서만 사용 가능하다. 조건문에서 쓰면 컴바인할때 문법적 에러가 나타난다. switch 문에서 switch문을 빠져나오는 역할 반복문에서 반복루프를 벗어나는데 사용 중첩된 반복문을 한번에 빠져나갈때 break문에 라벨붙이기 loop01: while(true) { for( ; ;) { break loop01; } } // => break는 원래 가장 가까운 {}를 빠져나오지만, 자바의 독특한 특징중 하나는 break에 라벨을 붙이면 중첩반복문을 한번에 빠져나올 수 있다는 것이다. switch문도 마찬가지다. while (true) { p03..

Programming/Java 2020.04.12

[ JAVA 수업 DAY 01 ] Java 기초

0. 디렉토리 만들기 자바와 이클립스를 설치하면 기본적으로 두개의 폴더가 생긴다. bin : 버전관리 및 src에 저장된 .java로 이루어진 소스파일이 컴파일되어 .class 파일로 저장되는 곳 src : 소스코드 파일이 저장되는 곳 1. 자바언어의 특징 90년대부터 자바언어가 인기 많아졌다고 한다. 그 전까진 C나 C++이 한국에서 더 많이 쓰였는데, 인터넷망이 다 깔리며 자바가 많이 쓰이기 시작했다. 지금은 자바를 모르면 웹수업을 못한다. WORA : Write Once Run Anywhere - OS에 독립적인 언어를 뜻한다. C는 윈도우에서 만든 코드가 유닉스나 리눅스에서 실행이 안된다. 각 OS마다 개별의 C언어가 생기게 된다. 자바는 WORA 언어이다. 컴파일 + 인터프리터 : OS에 독립적..

Programming/Java 2020.04.12

프로그래머스 레벨2 - 탑

문제 설명 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다. 송신 탑..

프로그래머스 레벨2 - 멀쩡한 사각형 with Java

문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solutio..

프로그래머스 레벨2 - 124 나라 with Java

문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. 입출력 예 n result 1 1 2 2 3 4 4 11 나의 코드 public class..

프로그래머스 레벨2 - 기능개발 with Java

문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..

프로그래머스 레벨2 - 프린터 with Java

문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..

프로그래머스 레벨2 - 스킬트리 with Java

문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한 조건 ..

반응형