Lv 2. 롤케이크 자르기

2024. 7. 4. 00:45·Algorithm & Data Structures/Programers

 

처음 떠올린 자료구조는 Set 이었다. 중복 제거를 통해 토핑의 갯수를 파악 할 수 있을 것이라 생각했고 어차피 2명이서 나눠 먹는것이라면 토핑의 갯수는 같을 것이고 전체 토핑의 갯수에서 짝수일때는 2분의 1이며 홀수일 때는 2분 의 1에서 하나를 더한값과 같을것이라 생각하여 코드를 구상하였다.

하지만 홀수 일때 중간에 단하나의 다른 토핑이 있을 때 오류가 발생 하였고 이를 해결하지 못할 것 같아 엎어 보았다.

모든 토핑의 종류와 갯수를 Map에 저장하고 하나씩 짚어가며 앞롤케잌에서는 ++ 뒷롤케잌에서는 --를 진행하여 두개의 케이크의 토핑갯수가 같을 때 answer을 구한다는 부분은 같으나 


Map을 사용하였는가 array를 사용하였는가에 따른 효율차이가 매우 극심하였다. Map과 Set을 이용하여 푼 코드는 효율적이지 못한것으로 판단하여 다른사람의 코드를 참조하여 풀어내었다.

class Solution {
    public int solution(int[] topping) {
        int answer = 0;
        int[][] log  = new int[2][10001];

        for(int cur : topping){
            if(log[0][cur]==0) log[0][0]++;
            log[0][cur]++;
        }
        
        for(int cur : topping){
            log[0][cur]--;
            if(log[0][cur]==0) log[0][0]--;
            if(log[1][cur]==0) log[1][0]++;
            log[1][cur]++;
            if(log[0][0] == log[1][0]) answer++;
        }
        return answer;
    }
}

 

그결과 시간복잡도 측면에서 성과를 거둘 수 있었다.

'Algorithm & Data Structures > Programers' 카테고리의 다른 글

Lv 2. 디펜스게임  (0) 2024.07.09
Lv 2. 땅따먹기  (0) 2024.07.05
Lv 2. 뒤에있는 큰수 찾기  (0) 2024.07.02
Lv 2. 모음사전  (0) 2024.07.01
Lv 2. [3차] 압축  (0) 2024.06.30
'Algorithm & Data Structures/Programers' 카테고리의 다른 글
  • Lv 2. 디펜스게임
  • Lv 2. 땅따먹기
  • Lv 2. 뒤에있는 큰수 찾기
  • Lv 2. 모음사전
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (326) N
      • Algorithm & Data Structures (246) N
        • BOJ (104) N
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (27) N
        • SQL (21) N
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구현
    dp
    프로그래머스
    백준
    후위순회
    PriorityQueue
    DynamicProgramming
    programmers
    baekjoon
    유니온파인드
    BFS
    골드
    전위순회
    백트래킹
    Union-Find
    Java
    Dijkstra
    경로압축
    다익스트라
    algorithm
    알고리즘
    SQL
    스택
    unionfind
    투포인터
    이분탐색
    dfs
    binarySearch
    동적계획법
    Stack
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
Lv 2. 롤케이크 자르기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.