[백준] 2442 한윤정이 이탈리아에 가서 아이스크림을 사먹는데

2022. 6. 27. 17:44· Dev/PS

import java.io.*;
import java.util.*;

public class Main {
    static BufferedReader br;
    static StringTokenizer st;
    static boolean[][] check;
    static int[] result;
    static boolean[] visited;
    static int N, M, cnt;

    public static void main(String[] args) throws IOException {
        init();
        comb(1, 0);
        System.out.println(cnt);
    }

    static void init() throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        st = new StringTokenizer(br.readLine());
        N = stoi(st.nextToken());
        M = stoi(st.nextToken());
        check = new boolean[N+1][N+1];

        for(int i = 1; i <= M; i++) {
            st = new StringTokenizer(br.readLine());
            int a = stoi(st.nextToken());
            int b = stoi(st.nextToken());
            check[a][b] = true;
            check[b][a] = true;
        }

        result = new int[3];
        visited = new boolean[N+1];
    }

    static void comb(int idx, int depth) {
        if(depth == 3)  {
            if(isValid()){
                cnt++;
            }
            return;
        }

        for(int i = idx; i <= N; i++) {
            if(visited[i])continue;
            visited[i] = true;
            result[depth] = i;
            comb(i, depth+1);
            visited[i] = false;
        }
    }
    static boolean isValid() {
        if(!check[result[0]][result[1]] && !check[result[0]][result[2]] && !check[result[1]][result[2]]) {
            return true;
        }
        return false;
    }

    static int stoi(String s) {return Integer.parseInt(s);}
}

실버문제 임에도 불구하고 헤매서 다른 분들의 풀이를 보았다..ㅠ 단순한 조합을 사용한 완전탐색 문제였지만 섞이면 안되는 조합 데이터를 저장하는 방법과 탐색이 잘못되어서 계속 메모리초과가 났다.

 

결론적으로는 2차원 배열을 통해서 조합 알고리즘을 통해 만들어진 숫자의 각 자리마다 섞어도 되는 조합인지만 확인하면 되는 문제였다. 계속 풀어보자.

저작자표시 (새창열림)

'Dev > PS' 카테고리의 다른 글

[백준] 9079 동전 게임 java  (0) 2022.06.30
[백준] 17626 Four Squares java  (0) 2022.06.28
[백준] 2503 숫자 야구 java  (0) 2022.06.24
[백준] 1969 DNA java  (0) 2022.06.22
[백준] 15721 번데기 java  (0) 2022.06.22
'Dev/PS' 카테고리의 다른 글
  • [백준] 9079 동전 게임 java
  • [백준] 17626 Four Squares java
  • [백준] 2503 숫자 야구 java
  • [백준] 1969 DNA java
풋데브
풋데브
지속가능한 삶
풋데브
지루함에 익숙해지자
풋데브
전체
오늘
어제
  • 분류 전체보기 (90)
    • 일상 (4)
    • 후기 (2)
    • 운동 (0)
    • Dev (84)
      • PS (72)
      • CS (0)
      • Java (1)
      • Spring (0)
      • DB (4)
      • Test (2)
      • Web (0)
      • 트러블 슈팅 (2)
      • Etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 조합
  • combination
  • 알고리즘
  • 깊이우선탐색
  • 다이나믹프로그래밍
  • 백준
  • DP
  • DFS
  • BOJ
  • 코딩테스트
  • 자료구조
  • 백트래킹
  • 완전탐색
  • graph
  • bruteforce
  • algorithm
  • java
  • 구현
  • 투포인터
  • programming
  • 개발자
  • 백엔드
  • Developer
  • 너비우선탐색
  • BFS
  • 자바
  • codingtest
  • Implement
  • 그래프
  • 코테

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
풋데브
[백준] 2442 한윤정이 이탈리아에 가서 아이스크림을 사먹는데
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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