반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[프로그래머스/Java] 코딩테스트 Lv.0 삼각형의 완성조건 (1) 본문

。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★/나의 코딩테스트

[프로그래머스/Java] 코딩테스트 Lv.0 삼각형의 완성조건 (1)

yeonee 여니 2023. 9. 24. 00:17
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

yeonee 블로그 : 네이버 블로그

예쁘고 맛있게 먹고 건강하게,강인하지만 온화하게 행하라. ※맛스타운스타일상 인스타 www.instagram.com/s2._.y25n ※맛집감성일상 유튜브https://youtube.com/channel/@S2_yeonee 티스토리https://yeoneeluv.tistory.co

blog.naver.com

 

🪅 나의 문제 풀이

//시도1
class Solution {
    public int solution(int[] sides) {
        int answer = 0;
        //int[] sides = new int[3];
        
        if(sides[0] < (sides[1] + sides[2])){
            answer = 1;
        }else{
            answer = 2;
        }
        return answer;
    }
}

3번 사례의 테스트만 통과하고, 1번과 2번 사례는 결과가 달라서 통과가 안됨 ㅠㅠ

//시도2
class Solution {
    public int solution(int[] sides) {
        int answer = 0;
        //int[] sides = new int[3];
        Arrays.sort(sides);
        
        if(sides[2] < (sides[1] + sides[0])){
            answer = 1;
        }else{
            answer = 2;
        }
        return answer;
    }
}

error: cannot find symbol
Arrays.sort(sides);

정렬의 기준에 따라 가장 큰 수가 어떤 인덱스에 있을지 모르니깐 Arrays.sort()로 sides 배열 요소들을 오름차순 정렬해줌. 그런데 에러가 남 ㅠㅠ

[ 테스트 통과 ]

//시도3
import java.util.Arrays;

class Solution {
    public int solution(int[] sides) {
        int answer = 0;        
        Arrays.sort(sides);
        
        if(sides[2] < sides[1] + sides[0]){
            answer = 1;
        }else{
            answer = 2;
        }
        return answer;
    }
}


[ 해결 방안 ]

class윗부분에 import java.util.Arrays;를 작성해야 했습니다. Arrays는 따로 import를 해주어야 사용가능한 클래스입니다.

 

🧸 코드설명

시도 1에서는 먼저 int[] sides의 크기를 정해주려다 이미 정의되어 있어 정의할 필요가 없어서 뺐습니다.
시도 2에서는 배열 중 가장 큰 값이 되는 sides[0]인덱스의 배열 요소를 기준으로 나머지 배열 요소를 더한 값과 비교하는 조건문을 만들었지만 어떤 인덱스의 값이 가장 큰 숫자일지 몰라 조건1, 조건2에 부합하지 않습니다. Arrays.sort() 메소드를 사용하여 오름차순으로 정렬하여 주었습니다.
시도 3에서는  Arrays를 사용하려면 Arrays를 따로 import 해주어야하여 class 윗부분에 import 해주었습니다.

 

✨ 다른 풀이

풀이1) 

정말 깔끔한 코드 발견했어요..
삼항연산자 메모....!
이번 프로젝트에서도 ajax내에서 버튼을 '처리'에서 '처리완료'로 바꿀때도 삼항연산자를 썼었는데, 정말 어떻게 생각하고 코드를 작성하느냐고 매우 중요한거 같아요!

 

풀이 2)

조금 식이 복잡해지는 감이 있지만 int 요소로 인덱스 값을 매기는 것을 약간 생각해보기도 했던지라, if조건식이 살짝 색달라보여서 참고하기 좋았어요.

 

풀이3) 

import에서 모든 클래스를 포함하는 .*을 사용하는 것도 코테에서 사용하려니 살짝 익숙치 않아서 생각하지 못했었네요.ㅎㅎ

728x90
반응형
LIST