목록프로그래머스 (49)
Hayden's Archive
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 내가 작성한 코드 i부터 j까지의 합을 1부터 j까지의 합에서 1부터 i-1까지의 합을 빼는 것으로 구할 수 있는 것을 활용해서 코드를 짰다. 예시로 나온 7+8=15라는 점에서 생각해서 j의 최댓값은 n의 절반보다 1이 더 크게, i의 최댓값은 n의 절반만큼으로 정하고 반복문을 돌렸는데 정확도는 곧바로 통..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 내가 작성한 코드 처음에 이 문제를 접하고 무슨 이렇게 쉬운 문제가 다 있나 만만하게 보다가 큰코를 다칠 뻔했다. 프로그래머스에서 돌렸다가 에러가 떠서 ..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr 내가 작성한 코드 자바에서 배열이 고지식하고 융통성이 없어서 좋아하지 않았는데 성능 측면에서는 ArrayList보다 배열이 더 빠르다고 하여 배열에 정을 붙이려고 노력하고 있다. 라이브러리도 곧잘 활용했지만 라이브러리 또한 무분별하게 사용하면 속도가 느려진다고 이야기가 들었다. 라이브러리는 편하지만 뭐든 적절하게 활용해야 하고..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 programmers.co.kr 내가 작성한 코드 아스키코드 숫자값을 활용하여 문제를 풀었다. 아스키코드에서 대문자는 65~90, 소문자는 97~122의 값을 가지는데 들어오는 문자열을 char[] 배열로 변환하여 각각의 문자를 정수로 변환하여 조건문으로 분류한다. 공백은 아스키코드로 0이므로 0일 때는 그냥 지나가게 하고 알파벳일 경우..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 내가 작성한 코드(효율성 때문에 여러번 코드를 짰던 문제) 좀처럼 풀이가 생각이 안나서 일단 반복문으로 돌렸다. 자기자신과 같지 않은 수로 나누었을 때 나누어떨어지는 수를 구한 후 집계하고 조금이라도 속도를 빠르게 하기 위해 바로 반복문을 break 시켰다. class Solution { public ..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까�� programmers.co.kr 내가 작성한 코드 1월부터 12월까지의 마지막날을 배열 date에 담았고 각 요일을 배열 day에 담았다. 2016년 1월 1일이 금요일이므로 7로 나누었을 때의 나머지가 1이 되는 요일을 금요일로 잡았기에 배열 day의 0번째 값은 목요일이 된다. 먼저 a의 값부터 1~12의 범위로..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 �� programmers.co.kr 내가 작성한 코드 배열 d를 오름차순으로 배열한 뒤 0번째 인덱스부터 차례대로 더해간다. 더했더니 합이 예산보다 클 경우에는 i를 저장하여 반환하고, 더했더니 예산과 같을 경우에는 i+1을 저장하여 반환하고, 그 외의 값(i보다 작은데 더 이상 더할 수 없는 경우)들은 차례대로 i+1을 저장해간 뒤 반복문이 끝나면 값을 반환..
알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수�� programmers.co.kr 내가 작성한 코드 처음에는 방법이 생각나지 않아서 0부터 돌리고 서로 일치하는 경우가 생겼을 때 participant 배열의 값을 서로 교환하여 일치하는 값들을 앞으로 차곡차곡 보내는 식으로 로직을 짰다. 이렇게 되면 participant 배열에서 가장 최후로 남는 마지막값이 정답이 되게 된다. class Solut..
출처 : https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 �� programmers.co.kr 내가 작성한 코드 수포자 3명의 찍기 패턴을 p1, p2, p3에 다음과 같이 배열로 담는다. p1은 반복주기가 5, p2는 반복주기가 8, p3는 반복주기가 10이므로 입력되는 인자 배열 answers의 인덱스를 반복주기로 나눈 나머지 인덱스와 맞춰서 값을 비교하면 된다. 그리고 int[] 배열인 count를 둬서 p1이 맞힌 횟수(count[0..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12910 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하� programmers.co.kr 내가 작성한 코드 0으로 나눌 경우를 생각해서 ArithmeticException 처리를 했다. 배열은 생성할 때 사이즈부터 정하고 들어가야 해서 사이즈가 얼마나 될지 가늠하기 어려울 때 쓰기 번거롭다. 담을 수량 생각하지 않고 막 담는 바구니로는 Array..