목록프로그래머스 (49)
Hayden's Archive
알고리즘 문제 출처 : 프로그래머스 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..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이�� programmers.co.kr 내가 작성한 코드 long형을 String형으로 바꿨고 long[] 배열을 임시로 만들어 거기에 substing을 통해 n번씩 잘라진 String형을 다시 long형으로 바꾸어 넣었다. 그리고 Arrays 클래스의 sort() 메소드로 오름차순으로 정렬하였고(이 클래스에 내림..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12950 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr 내가 작성한 코드 2차원 배열과 관련된 문제이다. 2차원 배열의 구조에 대해 이해하고 있다면 어렵지 않게 풀 수 있는 문제. class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 내가 작성한 코드 예외가 터져서 throws로 던졌는데 계속 에러가 나서 try~catch문으로 잡았더니 잡혔다. n과 m 중 0이 주어졌을 때 0으로 나누게 되어 터지는 ArithmeticException이었다. 경우를 1) 한 수가 다른 수의 최대공약수인 경우 2) 한 수와 다른 수의 최대공..
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함� programmers.co.kr 내가 작성한 코드 먼저 Math.sqrt() 메소드를 활용하여 n의 제곱근을 구해서 int형과 double형이 일치하는지 확인했다. 제곱근이 정수라면 두 타입이 서로 값이 일치할 것이기 때문이다. 그리고 Math.pow()를 사용해서 제곱근+1을 제곱한 값을 구했고 long형으로 캐스팅했다. 새..
알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12931 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 내가 작성한 코드 import java.util.*; public class Solution { public int solution(int n) { int answer = 0; double num = 0; String mStr = n+""; for(int i = m..