목록분류 전체보기 (139)
럿고의 개발 노트
[프로그래머스] 코딩테스트 연습 스킬트리 간략한 문제 풀이 정의한 Skill의 순서에 맞게 배웠어야 제대로된 SkillTree인 것을 찾는 문제였습니다. 따라서, 인덱스를 찾아서 비교한다면 문제가 풀릴거 같았습니다. 따라서 String.indexOf()를 이용하여 인덱스를 찾았습니다. String.indexOf() indexOf(String str) indexOf(char ch) indexOf(char ch, int fromIndex) indexOf(String str, int fromIndex) 문자열에서 특정 문자의 index를 찾는 메서드입니다. 앞에서부터 처음 발견되는 인덱스를 반환하며, 찾지 못했을 경우 "-1"을 반환합니다. 시작할 위치도 지정할 수 있는데, 시작 위치을 생략한다면 0번째 인덱..
[프로그래머스] 코딩테스트 연습 쇠막대기 간략한 문제 풀이 처음에는 문제를 이해하기에 조금 난해할 수 있지만, 조금만 생각하면 출제 의도를 알 수 있을 것이다. 일단, 레이저를 만나기 전에 나오는 ( 이거의 갯수가 올려져 있는 쇠막대기의 갯수이다. 따라서 레이저를 만나기 전에 나오는 (의 개수만큼 절단이 나오게 될 것이다. 따라서 (의 개수만큼 절단 개수를 더해주면 된다. 그리고 )이게 나오게 되면 쇠막대기의 끝부분이 짤리게 될 것이다. 이것은 한개의 쇠막대기의 끝부분만 잘리는 것 이기 떄문에, +1만 해주면 된다. 스택을 이용하면 (가 나오면 갯수만큼 집어넣고, )이게 나오면 하나를 빼주면 되는 식으로 쉽게 문제가 풀릴 것이다. 사실 스택을 이용하지 않아도 충분히 풀수는 있지만, 스택/큐 문제이기 떄문..
[프로그래머스] 코딩테스트 연습 기능개발 간략한 문제 풀이 스택/큐 문제인데, 나는 개인적으로 하드 코딩한 느낌이다. API 부분에서는 크게 설명할 부분이 없는 것 같다.. ㅎㅎ Github 문제 및 풀이 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return ..
MVC Pattern 이란? 이글을 쓴 계기는 우아한테크코스 Level 1 미션인 문자열 계산기와 자동차 경주게임을 하다보니, 패턴에 대한 지식이 없는 것 같아서 공부를 해봤습니다. 정확히 말하자면, MVC 패턴에서 Model(Domain)과 View에게 어떤 역할을 줘야 하는지에 대한 명확한 개념이 없었다고 하는게 더 정확하겠네요 디자인패턴이란? MVC 패턴을 공부하기 전에, 디자인 패턴이라는 것을 먼저 알아둬야 함. 디자인 패턴은 건축에서 사용하는 공법이라는 말에서 유래하였으며, 공법을 소프트웨어 개발 방법으로 공식화 한 것입니다. 소수의 뛰어난 개발자가 해결한 문제를 다수의 개발자들이 처리 할 수 있도록 공식화 시킨 규칙이라고 생각하면 됩니다. 프로그램을 어떻게 짜야하는지에 대한 방법론도 디자인패턴..
[프로그래머스] 코딩테스트 연습 다트게임 간략한 문제 풀이 카카오 신입 공채 1차 코딩 테스트 문제 해설 Level1중에서 어려운 문제에 꼽히는 문제였습니다. 일단 문제해설을 살펴보면 문자열 처리(String Manipulation)을 묻는 문제라고 합니다. 한글자씩 잘라서 처리하고 Tokenizing, Semantic Analysis을 통해 계산하는 문제였습니다. 처음 생각한 로직대로 충분이 가능했지만, 생각을 못했던 부분이 *인 스타상이 들어오면 해당 점수와 바로 전에 얻은 점수를 각 2배로 만드는 부분을 생각을 못해서 조금 어려웠습니다. 코드가 깔끔하지가 않아서 리패토링을 해야 될것 같은데, 지금의 실력으로는 이정도가 최대인것 같습니다. 우아한테크코스에서 배웠던 다형성을 이용한 if문 대처방법을 사..
[프로그래머스] 코딩테스트 연습 실패율 간략한 문제 풀이 지금까지 풀었던 Level1 문제중 가장 어려웠습니다. 처음 생각한 구현 방법은 '스테이지에 도달한 플레이어 수'를 구하고, '스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수'를 구하고 실패율을 구해서 정렬을 이용해 답을 도출해나갈려고 했습니다. 사실 처음부터 Stage라는 객체로 포장할 생각은 없었지만, 처음에 정렬과 수많은 자료구조들이 존재하게 되어서 싹다 지우고 다시 진행하게 되었습니다. 두번째 구현방법은 객체에 포장을 해서 실패율로 객체를 정렬하는 방법을 고민하였고, 검색 결과에 나온 대로 코드를 구현하였습니다. 두번째 구현 방법으로는 테스트 케이스들을 통과하기 시작했는데, 몇개에서 오류가 발생하게 되었..
[프로그래머스] 코딩테스트 연습 비밀지도 간략한 문제 풀이 2017년 카카오 신입 공채 1차 코딩 테스트 문제입니다. 카카오 신입 공채 1차 코딩 테스트 문제 해설 OR 비트 연산과 2진수에 대한 지식만 있다면, 어렵지 않게 풀수 있는 문제인 것 같습니다. 처음 생각한 코딩 방향과 일치하도록 설계를 했지만, 10진수를 2진수로 변환하면, 앞에 있는 '0'들은 생략이 되버립니다. Ex) 실제값 : 0000 1011 -> 출력값 : 1011 이 부분을 구현하는 데 처음에는 String.format을 사용하여 0을 추가했지만, 이상하게 값이 변경을 하는 바람에, while문으로 매개변수로 주어진 n과 변 문자열의 길이가 다르면 공백을 앞에 추가하도록 하였습니다. 문자열을 연산해야 하는 경우가 많..
[프로그래머스] 코딩테스트 연습 예산 간략한 문제 풀이 처음 문제를 읽어보고 들었던 생각은 작은 수 부터 넣다가 예산에서 벗어나면 그게 제일 많이 지원할 수 있는 길이 아닐까 생각해서 코드 방향을 그렇게 잡았습니다. 다행이게도 처음에 생각한 방향이 맞았으며, 배열을 정렬하여 작은 수부터 더하면서 부서 수를 세었고, 최대 예산과 비교하여 더 크면 그때 for문을 빠져나가도록 구현하였습니다 Arrays.sort() public static void sort(int[] a) 매개변수(Parameters)로 들어온 배열을 오름차순으로 정렬합니다. github 문제 및 풀이 문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이..
[프로그래머스] SQL 테스트 상위 n개 레코드 MAX / MIN 최대값, 최소값 가져오기(MAX, MIN 함수) 숫자만이 아닌 문자형 데이터에서도 사용가능함! 사용법 SELECT MAX(컬럼) FROM 테이블; SELECT MIN(컬럼) FROM 테이블; 참고자료 문제 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID..