본문 바로가기

분류 전체보기

(297)
캠핑 - Level4 programmers.co.kr/learn/courses/30/lessons/1833 코딩테스트 연습 - 캠핑 캠핑 무지를 돌보느라 지친 콘은 한적한 시골의 한 캠핑장에 놀러 갔다. 캠핑장은 텐트를 칠 수 있는 넓은 평지를 제공하고 있는데, 이 평지에는 이미 캠핑장에서 설치해 놓은 n개의 쐐기가 박혀 programmers.co.kr 문제 설명 캠핑 무지를 돌보느라 지친 콘은 한적한 시골의 한 캠핑장에 놀러 갔다. 캠핑장은 텐트를 칠 수 있는 넓은 평지를 제공하고 있는데, 이 평지에는 이미 캠핑장에서 설치해 놓은 n개의 쐐기가 박혀 있다. 캠핑장 이용 고객은 이 쐐기들 중 한 쌍을 골라 다음과 같은 조건을 만족하도록 텐트를 설치해야 한다. 텐트는 직사각형 형태여야 한다. 텐트의 네 면이 정확하게 동, 서,..
4단고음 - Level4 , DFS programmers.co.kr/learn/courses/30/lessons/1831 코딩테스트 연습 - 4단 고음 4단 고음 I'm in my dream~↗ ~↗ ~↗ IU는 본인의 장기인 3단 고음으로 유명하다. 그러던 그녀가 어느 날 4단 고음을 성공했고 그녀의 고음은 학계에서 연구가 될 만큼 유명해졌다 [1]. [1] 견두헌, 배명 programmers.co.kr 4단 고음 I'm in my dream~↗ ~↗ ~↗ IU는 본인의 장기인 3단 고음으로 유명하다. 그러던 그녀가 어느 날 4단 고음을 성공했고 그녀의 고음은 학계에서 연구가 될 만큼 유명해졌다 [1]. [1] 견두헌, 배명진. “아이유의 고음 발성 특성 분석”, 한국음향학회, 2011년 춘계학술대회 학술발표논문지 폭포 밑 득음 수련을 ..
Chapter2-코드스타일 레벨업 Chapter2 2.1 매직 넘버를 상수로 대체 매직넘버: 표면상 의미가 없는 숫자이지만 프로그램의 동작을 제어 매직 넘버를 static final 대문자로 만들어준다. 문제 코드 class CruiseControl { void setPreset(int speedPreset) { if (speedPreset == 2) { //매직넘버 setTargetSpeedKmh(16944); } else if (speedPreset == 1) { //매직넘버 setTargetSpeedKmh(7667); } else if (speedPreset == 0) { //매직넘버 setTargetSpeedKmh(0); } } void setTargetSpeedKmh(double speed) { targetSpeedKmh = s..
Chapter 1 - 우선 정리부터 Chapter1 1.1 쓸모없는 비교 피하기 불 원시 타입 true, false 를 없애준다. if(microscope.isInorganic(sample)){ // true,false 없음 return Result.INORGANIC; } else{ return analyzeOrganic(sample); } if(!microscope.isHumanoid(sample)){ // true,false 없음 return Result.ALIEN; } else{ return Result.HUMAN; } 1.2 부정 피하기 긍정 표현식이 부정표현식 보다 낫다. if(microscope.isOrganic(sample)){ //isInOrganic -> isOrganic return analyzeOrganic(sample..
객체지향 설계 5원칙 Chapter5 객체지향 설계 5원칙 5.1 SRP - 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나 뿐이다. 하나의 클래스에 역할가 책임이 너무 많으면 안된다. 그래서 책임에 따라 여러개의 클래스로 쪼개야한다. 단일 책임의 원칙은 속성, 메서드, 패키지, 모듈, 컴포넌트, 그리고 프레임워크 등에도 적용될 수 있는 개념이다. package srp.bad; public class 강아지 { final static Boolean 숫컷 = true; final static Boolean 암컷 = false; Boolean 성별; void 소변보다() { if (this.성별 == 숫컷) { // 한쪽 다리를 들고 소변을 본다. } else { // 뒤다리 두 개로 앉은 자세로 소변을 본다. }..
자바가 확장한 객체 지향 Chapter 4 자바가 확장한 객체 지향 4.1 abstract 키워드 - 추상 메서드와 추상 클래스 추상 메서드: 선언부는 있는데 구현부가 없는 메서드 추상 클래스는 객체를 만들 수 없다. 추상메서드는 하위 클래스에게 메서드 구현을 강제한다. 오버라이딩 강제. 추상메서드를 포함하는 클래스는 반드시 추상 클래스여야한다. 4.2 생성자 package constructor01; public class 동물 { } 위와 같이 생성자를 생성하지 않아도 기본생성자를 만들어 준다. package constructor03; public class 동물 { public 동물(String name) { System.out.println(name); } } 이렇게 인자가 있는 생성자 하나라도 만들면 자바는 기본 생성자를..
동굴 탐험 - 2020 KAKAO INTERNSHIP programmers.co.kr/learn/courses/30/lessons/67260 코딩테스트 연습 - 동굴 탐험 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[8,5],[6,7],[4,1]] true 9 [[8,1],[0,1],[1,2],[0,7],[4,7],[0,3],[7,5],[3,6]] [[4,1],[5,2]] true 9 [[0,1],[0,3],[0,7],[8,1],[3,6],[1,2],[4,7],[7,5]] [[4,1],[8,7],[6,5]] false programmers.co.kr 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 오지 탐험가인 프로도는 탐험 도중 n개의 방으로 이루어진 지하 동굴을 탐험하게 ..
징검다리 - Level4 programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr #include #include #include using namespace std; int solution(int distance, vector rocks, int n) { int answer = 0; sort(rocks.begin(), rocks.end()); int left =0; int right = distance; while(left