마트철수
[036] 프로그래머스: 완주하지 못한 선수, 소수 만들기, 예산 본문
2024.06.28(금)
알고리즘 1일차
특강이기에
세부 내용은 노션에 기록
티스토리에는 출퇴근 복습용 코드만 기록
완주하지 못한 선수
▼ 내가 작성한 코드
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
int n = participant.length-1;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(participant[i].equal(completion[j])){
return "";
}
}
}
return participant[i];
}
}
> 배열의 첫번째 값이 answer로 추출됨
> 3개 중 2개 답
▼ 1차 작성 코드 (시간 초과)
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
// 정렬
Arrays.sort(participant);
Arrays.sort(completion);
// i 0~n-1 순회
for(int i=0; i<completion.length; i++){
if(!participant[i].equals(completion[i])){
return participant[i];
}
}
return participant[participant.length - 1];
}
}
> import java.util.*; → 인텔리제이 자동완성?
> 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자
#Arrays.sort(participant) > 순서대로 배열 정렬
# equal 이 아닌 equals
▼ 정답 코드
해시코드 질문 필요
소수 만들기
▼ 내가 작성한 코드
class Solution {
public int solution(int[] nums) {
int answer = -1;
sum += answer;
Arrays.sort(nums);
for(int i = 0; i < nums.length; i ++){
for(int j = 0; j <nums.length; j++){
for(int z = 0; z < nums.length; z++){
if((int result = nums[i] + nums[j] + nums[z])%2 != 0 | (int result = nums[i] + nums[j] + nums[z])%3 != 0 |)
return answer;
}
}
}
System.out.println("Hello Java");
return answer;
}
}
> 오류
▼ 1차 작성 코드
import java.util.*;
class Solution {
public int solution(int[] nums) {
int counter = 0;
for(int i = 0; i < nums.length - 2; i ++){
for(int j = i+1; j <nums.length - 1; j++){
for(int k = j+1; k < nums.length; k++){
if(isPrime(nums[i] + nums[j] + nums[k])) counter++;
}
}
}
return counter;
}
private boolean isPrime(int num) {
for (int i = 2; i < num; i++) {
if (num % i == 0) return false;
}
return true;
}
}
> isPrime 함수는 개발자(내)가 구현
# %는 나머지 구하기
예산
▼ 내가 작성한 코드
import java.util.*;
class Solution {
public int solution(int[] d, int budget) {
int sum = 0;
int count = 0;
for(int i=0; i < d.length; i++){
sum += d[i];
count++;
}
return count;
}
}
> 2개 중 1개 성공(그냥 모든값이 들어가서..)
▼
import java.util.*;
class Solution {
public int solution(int[] d, int budget) {
Arrays.sort(d);
int result = 0;
for(int price : d){
budget -= price;
if(budget < 0) break;
result++;
}
return result;
}
}내가 작성한 코드
'KB IT's Your Life > 교육' 카테고리의 다른 글
| [038] Java: 컬렉션 자료구조 (1) | 2024.07.04 |
|---|---|
| [037] Java: 제네릭, 컬렉션 자료구조 (1) | 2024.07.01 |
| [035] Java: 포장클래스, 멀티 스레드 (0) | 2024.06.27 |
| [034] 예외 처리, Object Class (1) | 2024.06.26 |
| [032] JAVA 인터페이스 (상속과 비슷한) (1) | 2024.06.21 |