티스토리 뷰

오늘은 Heap의 LV3 문제를 하나 푸려고 프로그래머스에 접속을 했는데, 평소에는 보이지도 않던 실력 체크라는 탭이 눈에 들어왔다. ㅎㅎ... 코테 문제를 풀기 시작한 지 이제 2주 정도 접어들었는데, 내 실력은 어느 수준일까? 한번 확인해보고 싶기도 하고, 괜한 호기심이 생겨서 가볍게 LV1부터 풀어보기로 했다.

 

1번 문제: 

복잡해 보이지만, 사실 들어오는 입력 배열에서 중복 값을 제거한 포켓몬 종류의 수가

(입력 배열 / 2)의 값보다 큰 지 비교하여 출력 값을 결정해주면 되는, 짜는데 3분도 안 걸리는 아주 간단한 문제이다.

나는 HashSet을 이용하여 중복 값을 전부 제거한 뒤, 비교하는 과정을 진행했다.


package com.choonham;

import java.util.HashSet;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        HashSet<Integer> set = new HashSet<>();
        for(int i = 0; i < nums.length; i++) {
        	set.add(nums[i]);
        }
        
        if(set.size() >= nums.length/2) answer = nums.length/2;
        else answer = set.size();
        
        return answer;
    }
}

 

 


2번 문제: 

어.... 그냥 문자열의 길이를 받아서 그 결과에 따라 SubString으로 잘라 내보내면 되는 문제이다.

1번보다는 이 문제가 좀 더 LV1에 가까운 문제 같긴 하다.


package com.choonham;

class Solution {
    public String solution(String s) {
        String answer = "";
        
        if(s.length()%2 == 0) {
        	answer = s.substring(s.length()/2-1,s.length()/2+1);
        } else {
        	answer = s.substring(s.length()/2,s.length()/2+1);
        }
        
        
        return answer;
    }
}

 

 

이게 실은 호기심에 들어갔다가 타이머가 작동해버려서, 좀 급하게 푼 게 없지 않아 있는데... 그래도 결과는 원하는 데로 나와서 다행이다.

 

LV2를 바로 풀어보고 싶지만, 아직 그리디, 그래프, 이중 탐색에 관련된 문제들을 하나도 안 다뤄봤기에... 코딩 테스트 연습 탭에 있는 문제를 전부 풀어보고 도전해볼까 한다.

Comments