본문 바로가기

코딩 테스트/[JAVA] programmers 코딩 테스트 연습64

[No.12] 문자열 다루기 기본 / 프로그래머스 코딩 테스트 연습 JAVA 문자열 다루기 기본 문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 예시 s return "a234" false "1234" true 코드 해석 및 전체 코드 알고리즘 1. 문자열 길이 체크 length() 2. 문자열 한 글자씩 숫자가 아닌지 체크 charAt() 1. 문자열 길이 체크 문자열이 4이거나 6인 문자열로 구성되어야 하므로 4가 아니고(!= 4) 6이 아니면(!= 6) 바로 false를 반환해 클래스를 종료한다. 2. 숫자가 아닌지 체크 for문을 문자열 s의 길이만큼(length()) 반복한다. 1번처럼 숫자가 아니면 fa.. 2021. 6. 7.
[No.11] 문자열 내림차순으로 배치하기 / 프로그래머스 코딩 테스트 연습 JAVA 문자열 내림차순으로 배치하기 문제 설명 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 예시 src return "Zbcdefg" "gfedcbZ" 코드 해석 및 전체 코드 자바 알고리즘 1. 문자열 배열 복사 String.toCharArray() 2. 정렬을 이용하여 아스키코드가 큰 순으로 정렬 버블 정렬 3. 배열 → 문자열 변환 new String() 1. 문자열 배열 복사 문자열로 정렬을 할 시 문자열 자르는 메서드(charAt())을 사용해야 하므로 정렬 전 문자열 → char 타입 배열로 변환하는 메소드인 Strng.toCharArra.. 2021. 6. 7.
[No.8] 2016년 / 프로그래머스 코딩 테스트 연습 JAVA 2016년 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 return하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 예시 a b result 5 24 "TUE" 코드 해석 및 전체 코드 해석 class Solution { public String solution(int a, int b) { String answer = ""; int num = 0; for(int i = 1; i < a; i++){ if(i == 1 |.. 2021. 6. 5.
[No.7] 두 개 뽑아서 더하기 / 프로그래머스 코딩 테스트 연습 JAVA 두 개 뽑아서 더하기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 예시 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12 코드 해석 및 전체 코드 해석 //1. 인덱스 + 인덱스 //2. 앞 번호와 같을 시 continue //3. 정렬 #include #include #include int* solution(int numbers[], size_t numbers_len) { int* array = (int*)malloc(sizeof(int) * 1000); for.. 2021. 6. 5.
[No.6] 3진법 뒤집기/ 프로그래머스 코딩 테스트 연습 3진법 뒤집기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 예시 n result 45 7 125 229 코드 해석 및 전체 코드 class Solution { public int solution(int n) { int answer = 0; int[] array = new int[50]; int num = n; int cnt; for(cnt = 0; num != 0; cnt++){ if(num % 3 == 0) array[cnt] = 0; else array[cnt] = num % 3; num /= 3; } int j = 0; for(int i = cnt - 1; i >= .. 2021. 6. 3.
[No.5] 약수의 개수와 덧셈 / 프로그래머스 코딩 테스트 연습 약수의 개수와 덧셈 문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 예시 left right result 13 17 43 24 27 52 코드 해석 및 전체 코드 class Solution { public int solution(int left, int right) { int answer = 0; for(int i = left; i 2021. 6. 3.
[No.4] 음양 더하기 / 프로그래머스 코딩 테스트 연습 음양 더하기 문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 예시 absolutes signs result [4, 7, 12] [true, false, true] 9 [1, 2, 3] [false, false, true] 0 코드 해석 및 전체 코드 absolutes 배열은 숫자의 절대값이 들어있고, signs 배열은 absolutes 원소의 부호가 들어있다. signs 원소가 true이면 양수, false이면 음수이다. for문을 absolutes.length만큼 반복하여 answer에.. 2021. 6. 2.
[No.3] 로또의 최고 순위와 최저 순위 / 프로그래머스 코딩 테스트 연습 로또의 최고 순위와 최저 순위 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주.. 2021. 6. 2.
[No.2] 소수 만들기 / 프로그래머스 코딩 테스트 연습 소수 만들기 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 예시 num sresult [1,2,7,6,4] 4 [1,2,3,4] 1 코드 해석 및 전체 코드 머리 아파서 폐업합니다. class Solution { public int solution(int[] nums) { int answer = 0; for(int i = 0; i < nums.length-2; i++){ for(int j = i + 1; j < nums.length-1; j++){ for(i.. 2021. 6. 1.