코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/프로그래머스

롤케이크 자르기

2023. 3. 24. 16:09

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

 

프로그래머스

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

programmers.co.kr

 

 

소스코드

import java.util.HashSet;

class Solution {
    public int solution(int[] topping) {
        int answer = 0;
        HashSet<Integer> set = new HashSet<>();
        int arr1[] = new int[topping.length];
        int arr2[] = new int[topping.length];

        for (int i = 0; i < topping.length; i++) {
            set.add(topping[i]);
            arr1[i] = set.size();
        }
        set.clear();
        for (int i = topping.length - 1; i >= 0; i--) {
            set.add(topping[i]);
            arr2[i] = set.size();
        }

        for (int i = 0; i < topping.length - 1; i++) {
            if (arr1[i] == arr2[i + 1]) answer++;
        }

        return answer;
    }
}

 

 

해결방법

앞에서부터 토핑의 개수를 세서 arr1 배열에 저장한다.

뒤에서부터 토핑의 개수를 세서 arr2 배열에 저장한다.

arr1[i]과 arr2[i+1]이 같다면 두 조각의 토핑의 개수는 동일한 것으로 결과값을 증가시킨다.

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

입국심사  (0) 2023.06.15
오픈채팅방  (0) 2023.06.14
디펜스 게임  (0) 2023.06.14
뒤에 있는 큰 수 찾기  (0) 2023.04.10
행렬과 연산  (0) 2023.01.16
    '알고리즘/프로그래머스' 카테고리의 다른 글
    • 오픈채팅방
    • 디펜스 게임
    • 뒤에 있는 큰 수 찾기
    • 행렬과 연산
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바