본문 바로가기
코딩테스트/프로그래머스

[연습문제] 롤케이크 자르기 - JAVA

by 의정부핵꿀밤 2022. 11. 27.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/132265

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


계속 시간 초과가 나서 찾아본 문제다😢

처음에는 Set을 2개를 선언해서 반복문 돌면서 그 때마다 넣어주고 계산했는데

음 사실 진짜 효율 안좋은거 알긴 했다ㅋㅋㅋㅋㅋㅋ

근데 어어ㅓㅇ어어어ㅓㅇ어엄청 안좋아서 찾아보니까 Map을 사용하면 훨씬 빠르다고 했땅

그래서 Map 하나랑 Set 하나를 선언해서 구현했다!

 

그렇게 어려운 문제는 아니어서 코드 보면 이해가 될 것이다!

 

 

자바 코드)

import java.util.*;

class Solution {
    public int solution(int[] topping) {
        int answer = 0;
        Map<Integer, Integer> a = new HashMap<>();
        Set<Integer> set = new HashSet<>();

        for(int t : topping) {
            if(a.containsKey(t)) {
                a.put(t, a.get(t)+1);
            } else {
                a.put(t, 1);
            }
        }

        for(int t : topping) {
            a.put(t, a.get(t)-1);
            set.add(t);
            if(a.get(t)==0) {
                a.remove(t);
            }
            if(a.size()==set.size()) {
                answer++;
            }
        }
        return answer;
    }
}

https://codingbutterfly.tistory.com/51

 

[프로그래머스] 롤케이크 자르기

문제 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹

codingbutterfly.tistory.com

 

728x90

댓글