프로그래머스 1단계 체육복 문제 url: https://programmers.co.kr/learn/courses/30/lessons/42862?language=java 문제 설명오늘은 체육수업이 있는 날입니다. 그런데 점심시간에 도둑이 들어 몇몇 학생의 체육복이 도난을 당했습니다. 다행히 일부 학생들이 여벌의 체육복을 가져왔습니다. 학생들의 번호는 체격 순으로 매겨져 있기 때문에 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려주려고 합니다.예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 당연히 체육복을 2벌 가져온 학생의 체육복이 도난을 당했다면, 여벌의 체육복을 빌려줄 수 없습니다. 체육복이 없으면 체육수업을 들을 수 없기 때문에 체육복을 적절히 빌려..
1. Syntaxhighlighter 다운로드 http://alexgorbatchev.com/SyntaxHighlighter 에서 Syntaxhighlighter 다운로드 2. 티스토리 HTML 소스 코드 변경 - 꾸미기 > 스킨편집 클릭 - html 편집 클릭 - HTML 클릭 후, 태그 위에 아래 코드 추가 3. 파일 업로드 - 파일 업로드 클릭 - script 폴더와 styles 폴더에 있는 파일 모두 업로드 4. 글에 코드 입력하기 - HTML 버튼 클릭 후, 아래와 같은 태그를 입력하고, 태그 사이에 삽입하기 원하는 코드를 입력 // 원하는 코드 입력 4. 미리보기를 통해 글 확인
1. 컬렉션 프레임워크 (Collection Framework) 정의 - 컬렉션 : 객체를 수집하고 저장하는 역할을 수행 - 프레임워크 : 사용방법을 미리 정해놓은 라이브러리 → 컬렉션 프레임워크 : 객체를 수집하고 저장하는 역할을 수행하기 위해 사용 방법을 정의한 라이브러리 List - 순서를 유지, 중복저장 가능 ArrayList, LinkedList, Vector Set - 순서를 유지하지 않고, 중복저장 불가 HashSet, TreeSet Map - Key, Value가 쌍으로 저장되고, Key는 중복 불가, Value는 중복 가능 HashMap, TreeMap, HashTable 2. ArrayList vs LinkedList vs Array Array ArrayList LinkedList - ..
개발을 진행하면서 클래스 메소드로 만들어야 할까? 인스턴스 메소드로 만들어야 할까? 고민이 된다. 요구조건이나 상황에 따라 다르겠지만, 그 기준을 정의해보려고 한다.인스턴스 변수를 접근해서 사용할 경우는 인스턴스 메소드로 생성하고, 접근하지 않는다면! 클래스 메소드로 생성하자.그렇기 때문에 인스턴스 변수를 생성하는 것도 많은 고민이 필요하다. 클래스 메소드는 static 키워드가 붙은 method로 코드 실행 시, class loader가 memory에 적재하기 때문에 인스턴스 생성 없이 바로 사용이 가능한 것이다.그렇기 때문에 클래스 메소드는 인스턴스 필드에 대해 접근이 불가하다! 인스턴스 변수는 인스턴스 생성 후에 사용할 수 있기 때문에 인스턴스 생성없이 사용하는 클래스 메소드에서사용한다는 것은 순서..
자바를 단위로 쪼갠다고 한다면, method < class < package 순으로 나눠질 수 있다. method는 class없이 사용이 가능하고, 자바에서는 함수적 프로그래밍을 지원하기 때문에 가장 작은 단위! 다음은 method를 포함하는 class, 마지막은 class들의 집합, 묶음인 package 이다. 오늘은 package 와 package 사용을 위한 import에 대해 간단히 알아보려고 한다. 1. package package는 class들을 담고 있는 폴더이다. 같은 서비스를 제공하는 class 끼리 묶어서 관리하기 때문에 코드 배포가 편하다. 그리고 자주 사용하는 User 클래스가 있다고 가정해보자, 로그인 package에도 User 라는 이름의 class 가 사용할 수 있고, 로그아웃..
코드를 작성할 때, 가독성 향상을 위해 Code Convention을 준수하는 것이 좋다!Code Convention 에 대해 아래 블로그를 통해 학습했고, 간단한 코드를 구현함으로써 정리했다![출처 : http://kwangshin.pe.kr/blog/] 상수(static final) -> 클래스 변수 -> 인스턴스 변수 -> 생성자 -> 메소드 순으로 클래스를 구현한다.그리고 변수들은 접근제한자 public -> protected -> default -> private 순으로 정렬한다.메소드는 서로 호출하는 메소드끼리는 인접하게 정렬한다.
1. 자바 가상 기계 (JVM) 정의 자바 프로그램은 완전한 기계어가 아닌, 중간 단계의 바이트 코드이기 때문에 운영체제가 바로 자바 프로그램을 실행할 수 없다. 바이트 코드를 해석하고, 실행할 수 있는 가상의 운영체제 역할을 수행하는 것이 바로 JVM 이다. JVM은 OS와 자바 프로그램의 중간 다리 역할 수행하기 때문에 개발자는 운영체제별로 자바 코드를 구현할 필요가 없다. 각 각의 운영체제에도 동일한 결과를 출력해준다. (운영체제에 종속적, 자바코드에는 독립적) 2. 자바 가상 기계 (JVM) 동작 순서 1. Class loader는 바이트 코드(Hello.class)를 JVM 으로 가져오는 역할을 수행 2. Executuion Engine이 바이트 코드를 해석하여, Runtime Data Area..
유클리드 호제법 1. 유클리드 호제법 정의유클리드 호제법은 2개의 자연수의 최대공약수를 구하는 알고리즘2개의 자연수 a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. [위키백과] 예) GCD(30, 12) = GCD(30 % 12, 12) = GCD(6, 12) = 6 예) GCD(72, 45) = GCD(72 % 45, 45) = GCD(27, 45) = GCD(45 % 27, 27) = GCD(18, 27) = GCD(27 % 18, 18) = GCD(..