1. 콜라츠 추측
class Solution {
public int solution(int num) {
int answer = 0;
int count = 0; // answer와 동일한 기능을 하지만 조건 넣을 때 구분하기 위해 count 변수 선언
while (num != 1) {
if (num % 2 == 0) {
num = num / 2;
} else {
num = (num * 3) + 1;
}
answer++;
count++;
if (count == 500) {
return -1; // count가 500번을 초과하면 더 이상 계산하지 않고 -1 리턴
}
if (num < 1) {
return -1; // int형 Overflow 때문에 음수가 되는 경우 무조건 -1 리턴하도록 조건 생성함
}
}
return answer;
}
}
2. 하샤드 수
class Solution {
public boolean solution(int x) {
int result = 0;
String s = Integer.toString(x); // int x를 string 형태로 변환
for(int i = 0; i < s.length(); i++) {
result += Integer.parseInt(s.substring(i, i + 1)); // string 형태로 변환하여 자릿수의 합 구하기
}
if (x >= 1 && x < 10000 && x % result == 0) { // 하샤드 수 조건 설정
return true;
} else {
return false;
}
}
}
3. 수박수박수박수박수...
class Solution {
public String solution(int n) {
String answer = "";
String pattern = "수박"; // 수박 단어 자체를 패턴으로 지정하기
for (int i = 0; i < n / 2; i++) {
answer += pattern;
}
if (n % 2 == 1) {
return answer += "수"; // 홀수인 경우에만 "수" 하나 더 추가해서 리턴하기
}
return answer;
}
}
4. 제일 작은 수 제거하기
class Solution {
public int[] solution(int[] arr) {
// 빈 배열인 경우 배열에 -1을 채워 리턴
if(arr.length == 1) {
int[] answer = {-1};
return answer;
}
// 가장 작은 수를 제거한 배열 리턴
int[] answer = new int[arr.length-1];
int min = arr[0];
for(int i = 0; i < arr.length; i++) {
min = Math.min(min, arr[i]); // 가장 작은 수 구하기
}
// 반복문 index
int index = 0;
// 가장 작은 수를 제외한 배열 만들기
for(int i = 0; i < arr.length; i++) {
if(arr[i] == min) {
continue;
}
answer[index++] = arr[i];
}
return answer;
}
}
5. 모의고사 완전탐색
import java.util.ArrayList;
class Solution {
public int[] solution(int[] answers) {
int[] a = {1, 2, 3, 4, 5};
int[] b = {2, 1, 2, 3, 2, 4, 2, 5};
int[] c = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int[] count = new int[3];
for (int i = 0; i < answers.length; i++) {
if (answers[i] == a[i % a.length]) {
count[0]++;
}
if (answers[i] == b[i % b.length]) {
count[1]++;
}
if (answers[i] == c[i % c.length]) {
count[2]++;
}
}
// 최다 정답자 찾기
int maxCount = Math.max(count[0], Math.max(count[1], count[2]));
// 최다 정답자 리스트
ArrayList<Integer> resultList = new ArrayList<>();
for (int i = 0; i < count.length; i++) {
if (count[i] == maxCount) {
resultList.add(i + 1); // 배열 인덱스는 0부터 시작하므로 +1
}
}
// 리스트 -> 배열
int[] resultArray = new int[resultList.size()];
for (int i = 0; i < resultList.size(); i++) {
resultArray[i] = resultList.get(i);
}
return resultArray;
}
}
최다 정답자를 리스트화 하고 다시 배열로 변경하는 과정을
안 보고 작성해보기로 하였음(팀원들과의 약속!)
* 함수로 쉽게 표현할 수 있는 부분들 정리해두면 좋을 것 같은데 엄두가 잘 안 난다...!
'Java & Intellij' 카테고리의 다른 글
팀 프로젝트 KPT 회고록: 직관 메이트 만들기 (2) | 2023.11.27 |
---|---|
231123 TIL (1) | 2023.11.23 |
231121 TIL: Spring 입문 1주차 강의 재수강 (0) | 2023.11.21 |
231115 TIL (0) | 2023.11.15 |
231113 TIL (0) | 2023.11.13 |