목록전체 글 (139)
럿고의 개발 노트
[프로그래머스] SQL 테스트 아픈 동물 찾기 SELECT 테이블 레코드를 선택하여 검색이 가능합니다. SELECT 필드이름 FROM 테이블이름 [WHERE 조건] *를 사용하여 모든 필드를 선택할 수도 있습니다. 특정 레코드만 선택하기 위해서 WHERE을 사용하여 조건을 명시할 수도 있습니다. AND나 OR 연산자를 이용하여 여러 개의 조건을 연결 가능합니다. 조건식에는 같다는 의미(==)와 같지않다는 의미(!=) 두개다 사용 가능합니다. 참고자료 문제 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SE..
[프로그래머스] 코딩테스트 연습 약수의 합 간략한 문제 풀이 for문과 Stream으로 양쪽에서 풀어봤는데, 예전에 풀었던 두 숫자 사이의 합문제와 동일하게 stream이 효율성에서 더 낮게 나왔다.. for문 효율성 stream 효율성 크게 어려운 점은 없었으니, 따로 추가할 내용은 없을 듯 하다. github 문제 및 풀이 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 ..
[프로그래머스] 코딩테스트 연습 문자열을 정수로 바꾸기 간략한 문제 풀이 어렵지 않았지만, 저는 메소드를 이용하여 풀었습니다. 사실, 메소드로 풀수 있던 이유는 제한조건에서 부호와 숫자로만 이루어져 있고 0으로 시작하지 않는다는 조건이 있었기 때문에 가능했습니다. 그냥 parse~()에 대한 메소드를 이해할 수 있는 문제였던 것 같습니다. Integer뿐만아니라, Double, Byte, 등등 모든 타입에 존재합니다. 또한 static 함수로써 import를 하지 않아도 사용할 수 있습니다. Github 문제 및 풀이 문제 설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. ..
[프로그래머스] 코딩테스트 연습 시저 암호 간략한 문제 풀이 Level01중에서는 난이도가 조금 있던 문제였던것 같습니다. 처음에 너무 하드코딩으로 풀어서, 최대한 코드 간략화를 시켰습니다. 처음에는 소문자 배열과 대문자 배열을 모두 생성했지만, 아래 메소드를 이용하여 대문자 배열로만 코드를 줄였습니다.(그러다 보니 중복 코딩이 사라졌습니다.) 이번 문제를 풀면서 조금만 더 생각을 하면, 코드를 하나씩 지워나갈수 있다는 걸 알게 되었습니다. 역시 문자열 연산을 하는 문제는 String을 쓰면 효율성이 너무 떨어지네요. StringBuffer나, StringBuilder를 쓰기를 권장합니다. 이번에는 새로운 메소드들이 많이 나왔는데요. Arrays.binarySearch() Java API 설명 쉽게 생각..
[프로그래머스] 코딩테스트 연습 수박수박수박수박수박수? 간략한 문제 풀이 어렵지 않았던 문제입니다. Level1를 많이 풀다보니, 이런 문제는 이제는 많이 익숙해진 것 같습니다. 문자열 연산에서는 String보다는 StringBuffer를 사용하는 것이 효율적으로 훨씬 더 좋기 때문에 최대한 StringBuffer를 사용하려고 노력하고 있습니다. 수학적인 알고리즘으로 접근해서 풀었던 다른 사람의 풀이가 있기 때문에, 그걸 추가하겠습니다, new String(new char [n/2+1]).replace("\0", "수박").substring(0,n); replace()는 특정문자열을 찾아 다른 문자열로 변경하는 것이며, substring()은 문자열을 자르는 메서드입니다. 문자(Character)의 기본..
[프로그래머스] 코딩테스트 연습 소수 찾기 간략한 문제 풀이 소수찾기는 알고리즘 문제중 기본적인 문제입니다. 사실, 반복문을 사용하여 하나씩 계산을 해서 풀수 있지만, 소수 찾기의 가장 큰 문제점은 효율성 문제이겠죠. 얼마나 반복을 하지 않는가를 보는 문제 중 대표적인 문제인 것 같습니다. 약수는 자기자신의 루트값 이하의 값만 약수를 가지게 될것 입니다. 따라서 최소한의 반복을 하기 위해서 Math.sqrt()메소드를 사용하여 루트값을 구하였습니다. 또한 짝수 중 2를 제외한 나머지 값들은 모두 소수가 될 수 없습니다. 따라서 맨 처음부터 짝수가 들어온다면 바로 빼버렸습니다. 지금생각해보니, 어차피 3부터 줄려면 i값을 +2씩 증감식을 만들었어도 좋았겠네요. 따라서 하다보니 변경하였습니다. 증감식을 1씩..
[프로그래머스] 아픈 동물 찾기 문제링크 SELECT 테이블 레코드를 선택하여 검색이 가능합니다. SELECT 필드이름 FROM 테이블이름 [WHERE 조건] *를 사용하여 모든 필드를 선택할 수도 있습니다. 특정 레코드만 선택하기 위해서 WHERE을 사용하여 조건을 명시할 수도 있습니다. AND나 OR 연산자를 이용하여 여러 개의 조건을 연결 가능합니다. 참고자료 문제 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시..
[프로그래머스] 코딩테스트 연습 문자열 내 p와 y의 개수 간략한 문제 풀이 대문자와 소문자 두개다 같은지를 봐야 하지만, String 클래스 메소드 중 toUpperCase()나, toLowerCase가 있기 때문에, 조건을 하나로 줄일 수 있는 것이 이 문제의 핵심인 듯 하다. for문으로 문제를 풀때 stream으로 간단히 풀수 없을지를 고민을 해야 되겠다. 다른 사람 풀이를 보고 대단하다는 생각이 들었다 ㅎㅎ s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count(); Github 문제 및 풀이 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'..
[프로그래머스] 코딩테스트 연습 서울에서 김서방 찾기 간략한 문제 풀이 전혀 어렵지 않는 문제였다. 다른 사람 풀이에서 괜찮은 코드를 찾아서 그것만 추가하려고 합니다. Arrays.asList(seoul).indexOf("Kim"); indexOf를 가장 먼저 생각했는데, 배열에서는 그 메소드가 없다는 걸 생각하고 나서 그냥 For문으로 돌렸습니다 ㅎㅎ Github 문제 및 풀이 문제 설명 String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한 사항 seoul은 길이 1 이상, 1000 이하인 배열입니다. seoul..