level1
프로그래머스 (Level 1) 자연수 뒤집어 배열로 만들기 [Java]
문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한사항 n은 10,000,000,000이하인 자연수입니다. 입출력 예 한 줄 요약 주어진 수를 10으로 나눌 때 나머지를 이용해 배열을 만든다. 내 코드 1. 실수형 변수를 문자열로 형변환한 후의 길이를 구한다. 2. 정답 배열의 크기는 문자열의 길이다. 3. for문을 돌려 10으로 나눈 나머지를 정수형으로 형변환한 후 정답 배열에 저장한다. 4. 주어진 실수를 10으로 나누기를 반복한다. import java.util.*; class Solution { public int[] solution(long n) { int length = Long.toStrin..
프로그래머스 (Level 1) 정수 제곱근 판별 [Java]
- 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한사항 n은 1 이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 - 한 줄 요약 주어진 수의 제곱근을 구해 +1 한 후 제곱한 값을 구한다. - 내 코드 1. 실수형 변수를 만들어 주어진 수의 제곱근을 구해 넣는다. (Math.sqrt() 함수를 쓰면 쉽게 제곱근을 구할 수 있다.) 2. 정수형 변수를 만들어 실수형으로 구해진 제곱근을 정수형으로 형 변환한다. (형변환 이유는 실수의 값과 정수형 변환을 했을 때의 값을 비교하기 위함이다.) 3. 실수형 ..
프로그래머스 (Level 1) 약수의 합 [Java]
- 문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한사항 n은 0 이상 3000 이하인 정수입니다. 입출력 예 - 한 줄 요약 주어진 숫자의 약수 모두 합하기! - 내 코드 1. 약수는 1부터 시작이므로 for문을 1부터 n까지 돌린다. 2. n을 i로 나눠 나머지가 0인 것이 약수이므로 더한다. class Solution { public int solution(int n) { int answer = 0; for (int i=1; i
프로그래머스 (Level 1) 문자열 다루기 기본 [Java]
- 문제 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. 입출력 예 - 한 줄 요약 문자열의 길이와 숫자로 구성되있는지 파악하기 - 내 코드 1. 문자열의 길이가 4 OR 6일때 문자열의 길이만큼 for문을 돌린다. 2. 아스키코드값을 확인해(숫자 : 48~57) 범위에 해당하지 않으면 answer에 false를 대입하고 for문을 종료시킨다. 3. 범위에 해당하면 answer에 true를 대입한다. 4. 문자열의 길이가 4와 6이 아닐 때 answer에 false를 대입한다. class ..
프로그래머스 (Level 1) 문자열 내림차순으로 배치하기 [Java]
- 문제 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 str은 길이 1 이상인 문자열입니다. 입출력 예 - 한 줄 요약 소문자 -> 대문자 크기로 정렬하기 - 내 코드 1. s.split("") 을 사용해 기존 문자열의 문자를 한 개씩 배열에 넣는다. 2. Arrays.sort()를 사용해 대문자 -> 소문자 순으로 정렬시킨다. 3. Collections.reverse(Arrays.asList())를 사용해 소문자..
프로그래머스 (Level 1) 두 정수 사이의 합 [Java]
- 문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소 관계는 정해져 있지 않습니다. 입출력 예 - 한 줄 요약 a ~ b 사이의 숫자를 더하기 - 내 코드 : for문에 3항연산자를 사용해보았다. 1. i 초기값 : b가 a보다 크면 a, a가 b보다 크면 b 반환(..
프로그래머스 (Level 1) 나누어 떨어지는 숫자 배열 [Java]
문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 한 줄 요약 arr의 원소중 divisor로 나눴을 때 나머지가 0인 원소들을 오름차순으로 정렬! 내 코드 1. divisor로 나누어 떨어지는 원소 담을 ArrayList 생성 2. ArrayList에 나누어 떨어지는 수 for문으로 넣기 3. ArrayList..
프로그래머스 (Level 1) 같은 숫자는 싫어 [Java]
- 문제 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 같..