목록분류 전체보기 (282)
Hayden's Archive
알고리즘 문제 출처 : 프로그래머스 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..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하� programmers.co.kr 내가 작성한 코드 각 자리수 * 10^n을 계속해서 뺄 것이므로 이 값을 임시로 담을 xTemp라는 변수가 필요했다. 10^n으로 나눈 몫은 quotient에 담았고 이 몫들을 합한 값들은 qTotal에 담았다.(qTotal이 모든 자릿수의 합이 된다) 그 뒤 x로 qTotal를 나누었을 때 나누어..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 내가 작성한 코드 Arrays의 copyOfRange() 메소드와 Arrays.sort() 메소드를 활용해서 필요한 부분만 잘라서 카피하고 카피한 배열을 오름차순으로 정렬했다. 매번 남의 간결한 코드를 보고 감탄만 하다가 자바 API 뒤적뒤적거리면서 익히게 된 라이브러리 활용해서 코드를 짰는데 가장 상위에 있는 코드와 풀이가 정확히 일치하게 됐다. 알고리즘도 계속 풀다 보면 익숙해지는구나 싶다..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12948 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr 내가 작성한 코드 핸드폰 번호 4자리를 제외한 수만큼의 String 객체를 만들고 빈 값들을 *로 대체해준다. 그 뒤 StringBuffer 객체를 만들고 phone_number에서 자른 숫자만큼 append() 메소드로 붙여주면 뒷번호 4자리만 숫자가 나타난다! class Solution { publi..
알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12932 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr 내가 작성한 코드 먼저 long형으로 입력되는 인자값 n을 String형으로 바꿔줘서 temp라는 이름을 부여했다. 그 문자열 길이만큼 answer라는 int[] 배열을 생성했고 temp의 마지막 인덱스값부터 출발, answer는 0번째 인덱스값부터 출발하여 tem..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이�� programmers.co.kr 내가 작성한 코드 방법이 따로 생각나지 않아서 s가 8이하인 문자열이라는 제한 사항을 보고 그냥 char형 배열을 만들고 문자열을 charAt()로 한 글자씩 뽑아내서 비교대조하였다. class Solution { public boolean solution(String s..