목록알고리즘 (72)
송민준의 개발노트

https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 | 프로그래머스 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예 arr return [4,3, programmers.co.kr ArrayList를 활용해서 제일 작은 숫자를 뽑아내고 ,r..

https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 | 프로그래머스 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 입출력 예 설명 입출력 예#1 121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니 programmers.co.kr 제곱근을 하게 되면 결과값이 소수가 나오는 경우가 있고 정수가 나..

https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 | 프로그래머스 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 programmers.co.kr 나머지를 이용해서 숫자값 하나씩 뽑고 int 배열에 넣는다. 배열을 정렬한 후 StringBuilder에 넣고 역순으로 두고 Long으로 파싱해서 반환한다. import java.util.Arrays; c..

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 [5,4,3,2,1] programmers.co.kr 스트링빌더로 값을 받은 다음 역으로 해주고 하나씩 int 배열에 넣었다. class Solution { public int[] solution(long n) { StringBuilder a = new StringBuilder(""); a.append(..

https://programmers.co.kr/learn/courses/30/lessons/12925 코딩테스트 연습 - 문자열을 정수로 바꾸기 | 프로그래머스 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 0으로 시작하지 않습니다. 입출력 예 예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. programmers.co.kr 좀 당황스러운 문제였다... 주어진 String에는 숫자 외에 + 또는 -..

https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 | 프로그래머스 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. 입출력 예 s return a234 false 1234 true programmers.co.kr 문자열 길이와 표현식을 검증하는 문제이다. 나는 삼항 연산자와 filter를 활용해서 풀었다. 람다식을 사용해서 풀면 깔끔하니 보기가 좋지만 속도가... 마음에 안든다...^^ class Solut..

https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 | 프로그래머스 programmers.co.kr 나는 isNum을 만들어줬는데 Character의 메소드 중 isDigit가 숫자인지 아닌지 식별해준다고 한다... 참고^^ class Solution { public int solution(String dartResult) { int sum =0; String[] jumsu = {"","",""}; int[] jumSqrt = {0, 0, 0}; int[] option = {1, 1, 1}; int jumsuIndex = 0; for(int i =0; i < dartResult.length(); i++) { Stri..

https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 | 프로그래머스 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 programmers.co.kr 입력 받은 값을 일련의 연산을 거쳐서 1로 만드는 과정 처음에는 삼항연..