프로그래머스
-
프로그래머스 연습문제 제일 작은 수 제거하기 자바 풀이 Level 1 제일 작은 수 제거하기 문제 정리 주어진 배열에서 가장 작은 수를 제거한 배열을 리턴하여라. 배열에 숫자가 하나밖에 없다면 -1을 담은 배열을 리턴하여라. 배열에 주어진 수는 모두 다르다 문제 풀이 배열을 오름차순이나 내림차순으로 정렬해서 제거하면 안됩니다. 주어진 원소 순서대로 출력해야 합니다. 가장 작은 수의 인덱스를 찾습니다. 그 인덱스의 수만 빼고 새로운 배열에 숫자를 모두 넣습니다. 그러면 원래 순서대로 들어가게 됩니다. 문제 풀이 class Solution { public static void main(String[] args){ int[] arr = {4,3,2,1}; int[] arr2 = {10}; // debug in..
[최소값 찾기] level1 프로그래머스 제일 작은 수 제거하기 자바 풀이프로그래머스 연습문제 제일 작은 수 제거하기 자바 풀이 Level 1 제일 작은 수 제거하기 문제 정리 주어진 배열에서 가장 작은 수를 제거한 배열을 리턴하여라. 배열에 숫자가 하나밖에 없다면 -1을 담은 배열을 리턴하여라. 배열에 주어진 수는 모두 다르다 문제 풀이 배열을 오름차순이나 내림차순으로 정렬해서 제거하면 안됩니다. 주어진 원소 순서대로 출력해야 합니다. 가장 작은 수의 인덱스를 찾습니다. 그 인덱스의 수만 빼고 새로운 배열에 숫자를 모두 넣습니다. 그러면 원래 순서대로 들어가게 됩니다. 문제 풀이 class Solution { public static void main(String[] args){ int[] arr = {4,3,2,1}; int[] arr2 = {10}; // debug in..
2020.04.22 -
프로그래머스 연습문제 x만큼 간격이 있는 n개의 숫자 자바 풀이 Level 1 x 만큼 간격이 있는 n개의 숫자 문제 정리 정수 x와 자연수 n이 주어질때 x부터 시작해 x씩 증가하는 숫자 n개를 리스트에 담아 return 한다. 문제 풀이 x는 최대 천만이고 그걸 1000번 더할 수 있으므로 int형을 넘게 되므로 리스트는 long형이어야 합니다.(자바 기준) for문을 반복하며 x의 배수를 모두 배열에 넣어주면 됩니다. 이때 주의할 점은 i와 x의 곱 계산시 int형으로만 계산되기 때문에 int 범위를 넘는 값은 answer 배열에 제대로 담을 수 없습니다. 그렇기 때문에 처음에 x를 long형으로 바꾸어 계산합니다. 자바 코드 class Solution{ public static long[] sol..
[for문] level1 프로그래머스 x만큼 간격이 있는 n개의 숫자 자바, 파이썬 풀이프로그래머스 연습문제 x만큼 간격이 있는 n개의 숫자 자바 풀이 Level 1 x 만큼 간격이 있는 n개의 숫자 문제 정리 정수 x와 자연수 n이 주어질때 x부터 시작해 x씩 증가하는 숫자 n개를 리스트에 담아 return 한다. 문제 풀이 x는 최대 천만이고 그걸 1000번 더할 수 있으므로 int형을 넘게 되므로 리스트는 long형이어야 합니다.(자바 기준) for문을 반복하며 x의 배수를 모두 배열에 넣어주면 됩니다. 이때 주의할 점은 i와 x의 곱 계산시 int형으로만 계산되기 때문에 int 범위를 넘는 값은 answer 배열에 제대로 담을 수 없습니다. 그렇기 때문에 처음에 x를 long형으로 바꾸어 계산합니다. 자바 코드 class Solution{ public static long[] sol..
2020.04.22 -
프로그래머스 연습문제 정수 제곱근 판별 풀이 Level 1 정수 제곱근 판별 문제 정리 양의 정수 n이 주어질때 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다. n이 어떤 정수 x의 제곱이라면 (x+1)^2을 리턴 아니라면 -1을 리턴한다. 문제 풀이 주어진 수 n을 루트 취해본다. 취한 값이 floor한 값과의 차이가 없다면 n은 Math.sqrt(n)의 제곱이 된다. 예를들어 121이라면 루트를 했을때 11입니다. 이 경우 floor한 값은 그대로 11 입니다. 뒤의 소수점이 없기 때문입니다. 이 경우 (Math.sqrt(a)+1)^2을 구합니다. 만약 어떤 수의 제곱이 아니라면 루트를 취했을때 뒤에 소수점이 남기 때문에 floor한 값과 차이는 0이 아니게 됩니다. 프로그래머스 정수 제곱근 판..
[수학] level1 프로그래머스 정수 제곱근 판별 자바(java) 풀이프로그래머스 연습문제 정수 제곱근 판별 풀이 Level 1 정수 제곱근 판별 문제 정리 양의 정수 n이 주어질때 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다. n이 어떤 정수 x의 제곱이라면 (x+1)^2을 리턴 아니라면 -1을 리턴한다. 문제 풀이 주어진 수 n을 루트 취해본다. 취한 값이 floor한 값과의 차이가 없다면 n은 Math.sqrt(n)의 제곱이 된다. 예를들어 121이라면 루트를 했을때 11입니다. 이 경우 floor한 값은 그대로 11 입니다. 뒤의 소수점이 없기 때문입니다. 이 경우 (Math.sqrt(a)+1)^2을 구합니다. 만약 어떤 수의 제곱이 아니라면 루트를 취했을때 뒤에 소수점이 남기 때문에 floor한 값과 차이는 0이 아니게 됩니다. 프로그래머스 정수 제곱근 판..
2020.04.22 -
프로그래머스 연습문제 자릿수 더하기 자바, 파이썬 풀이 Level 1 자릿수 더하기 문제 정리 자연수 N이 주어지면 각 자릿수의 합을 구해서 return 하는 solution 함수를 작성해라 문제 풀이 10으로 계속 나눠가며 나머지를 더해준다. 주어진 수 n은 10을 나눈 몫으로 update해준다. n이 10보다 작아질때 까지 반복한다 while문이 탈출하면 10보다 작아진 n을 ans에 마지막으로 더해준다. 예를 들어 123이 있다. 123을 10으로 나눈 나머지는 3이다 // 합 3 123을 10으로 나눈 몫은 12이다. // n=12 12를 10으로 나눈 나머지는 2이다 // 합 3+2 = 5 12를 10으로 나눈 몫은 1이다. // n=1 n이 10보다 작아졌으므로 탈출 마지막 n을 더해 준다 /..
[수학] level1 프로그래머스 자릿수 더하기 자바, 파이썬 풀이프로그래머스 연습문제 자릿수 더하기 자바, 파이썬 풀이 Level 1 자릿수 더하기 문제 정리 자연수 N이 주어지면 각 자릿수의 합을 구해서 return 하는 solution 함수를 작성해라 문제 풀이 10으로 계속 나눠가며 나머지를 더해준다. 주어진 수 n은 10을 나눈 몫으로 update해준다. n이 10보다 작아질때 까지 반복한다 while문이 탈출하면 10보다 작아진 n을 ans에 마지막으로 더해준다. 예를 들어 123이 있다. 123을 10으로 나눈 나머지는 3이다 // 합 3 123을 10으로 나눈 몫은 12이다. // n=12 12를 10으로 나눈 나머지는 2이다 // 합 3+2 = 5 12를 10으로 나눈 몫은 1이다. // n=1 n이 10보다 작아졌으므로 탈출 마지막 n을 더해 준다 /..
2020.04.21 -
프로그래머스 연습문제 이상한 문자 만들기 파이썬 풀이 Level 1 이상한 문자 만들기 문제 정리 단어는 하나 이상의 공백문자로 구분되어 있다. 단어의 짝수번째 알파벳은 대문자로 변경 단어의 홀수번째 알파벳은 소문자로 변경 변경된 문자열을 리턴하여라 첫 번째 글자는 0번째 인덱스로 본다 대소문자 변환(파이썬) upper 함수와 lower함수를 이용하여 바꿀 수 있습니다. 대문자 변환 s = "abc" new = s.upper() print(new) # ABC 소문자 변환 s = "ABC" new = s.lower() print(new) # abc 대소문자 변환(자바) 자바의 경우 string에 대소문자 변환 메소드가 있습니다. 이를 이용합니다. 대문자 변환 String s = "abc"; String n..
[대소문자 변환] level1 프로그래머스 이상한 문자 만들기 파이썬, 자바 풀이프로그래머스 연습문제 이상한 문자 만들기 파이썬 풀이 Level 1 이상한 문자 만들기 문제 정리 단어는 하나 이상의 공백문자로 구분되어 있다. 단어의 짝수번째 알파벳은 대문자로 변경 단어의 홀수번째 알파벳은 소문자로 변경 변경된 문자열을 리턴하여라 첫 번째 글자는 0번째 인덱스로 본다 대소문자 변환(파이썬) upper 함수와 lower함수를 이용하여 바꿀 수 있습니다. 대문자 변환 s = "abc" new = s.upper() print(new) # ABC 소문자 변환 s = "ABC" new = s.lower() print(new) # abc 대소문자 변환(자바) 자바의 경우 string에 대소문자 변환 메소드가 있습니다. 이를 이용합니다. 대문자 변환 String s = "abc"; String n..
2020.04.21 -
프로그래머스 시저암호 풀이 Level 1 시저암호 문제 정리 알파벳이 주어졌을때 n만큼 미룬 문자열을 반환하여라 예를들어 a가 주어졌을때 1만큼 밀면 b가 된다. 공백은 밀어도 그대로 공백이다 z에서 1만큼 밀면 a가 된다. 문제 풀이 이 문제는 아스키 코드 값을 이용하여 풀 수 있습니다. 알파벳 개수: 26개 소문자: 97122 대문자: 6590 문자를 하나하나씩 직접 n만큼 밉니다. 만약 i번째 문자가 공백인 경우 무시합니다. 대문자와 소문자의 경우를 나누어서 풉니다. 대문자의 경우 아스키 코드 값이 65~90 입니다. n만큼 밀고 90을 넘었다면 26만큼 감소시켜 줍니다. 26은 a-z의 개수입니다. 소문자의 경우도 마찬가지로 똑같이 해줍니다. 프로그래머스 시저 암호 자바 코드 주석 달아두었습니다!..
[문자열, 아스키코드] Level1 프로그래머스 시저암호 자바(java) 풀이프로그래머스 시저암호 풀이 Level 1 시저암호 문제 정리 알파벳이 주어졌을때 n만큼 미룬 문자열을 반환하여라 예를들어 a가 주어졌을때 1만큼 밀면 b가 된다. 공백은 밀어도 그대로 공백이다 z에서 1만큼 밀면 a가 된다. 문제 풀이 이 문제는 아스키 코드 값을 이용하여 풀 수 있습니다. 알파벳 개수: 26개 소문자: 97122 대문자: 6590 문자를 하나하나씩 직접 n만큼 밉니다. 만약 i번째 문자가 공백인 경우 무시합니다. 대문자와 소문자의 경우를 나누어서 풉니다. 대문자의 경우 아스키 코드 값이 65~90 입니다. n만큼 밀고 90을 넘었다면 26만큼 감소시켜 줍니다. 26은 a-z의 개수입니다. 소문자의 경우도 마찬가지로 똑같이 해줍니다. 프로그래머스 시저 암호 자바 코드 주석 달아두었습니다!..
2020.04.20