250x250
syk531
하루
syk531
전체 방문자
오늘
어제
  • 분류 전체보기 (166)
    • 개발 (166)
      • java (11)
      • kotlin (7)
      • spring, spring boot (35)
      • Javascript (4)
      • Tyhmeleaf (2)
      • Kafka (17)
      • Docker (8)
      • Kubernetes (3)
      • Elastic Stack (4)
      • react native (3)
      • Web (4)
      • GIS (3)
      • 리눅스 (16)
      • Windows (2)
      • 네트워크 (2)
      • 안드로이드앱 (5)
      • git (2)
      • Tool (15)
      • 프로젝트 (7)
      • 백준알고리즘 (14)
      • DB (2)

인기 글

최근 글

블로그 메뉴

    공지사항

    태그

    • 티스토리챌린지
    • 오블완
    • 뉴스앱

    최근 댓글

    티스토리

    hELLO · Designed By 정상우.
    syk531

    하루

    개발/백준알고리즘

    1920번_수 찾기_java

    2023. 8. 12. 09:03
    728x90
    반응형

    ● 문제

    https://www.acmicpc.net/problem/1920

     

    ● 풀이

    처음에는 boolean 배열을 100000 크기로 만들어서(boolean 배열의 default 값은 false) N개 정수의 index에 해당하는 배열 요소의 값을 true로 바꿔주고 M개 정수를 배열의 index로 찾아서 boolean 값이 true이면 1, false이면 0으로 설정하게 개발했다.

    그런데 조건에서 정수의 범위가 int의 범위이므로 boolean 배열의 index의 길이를 넘어서므로 실패했고 검색 속도를 올리기 위해 TreeSet을 이용하는 방법으로 변경하였다.

     

    ● 소스

    package acmicpc;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.Set;
    import java.util.TreeSet;
    
    public class acmicpc1920 {
        public static void main(String args[]) {
            try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
                 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out))) {
    
                Set<Integer> set = new TreeSet<>();
                int n = Integer.parseInt(reader.readLine());
                String[] nStrArr = reader.readLine().split(" ");
    
                for(int i=0; i<n; i++) {
                    set.add(Integer.parseInt(nStrArr[i]));
                }
    
                int m = Integer.parseInt(reader.readLine());
                String[] mStrArr = reader.readLine().split(" ");
                for(int i=0; i<m; i++) {
                    writer.append(String.valueOf(set.contains(Integer.parseInt(mStrArr[i])) ? 1 : 0) + "\n");
                }
    
                writer.flush();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

     

    728x90
    반응형
    저작자표시 (새창열림)

    '개발 > 백준알고리즘' 카테고리의 다른 글

    11723번_집합_java  (0) 2023.08.06
    23972번_악마의 제안_java  (0) 2023.08.06
    15726번_이칙연산_java  (0) 2023.08.06
    2563번_색종이_java  (0) 2022.12.11
    5597번_과제 안 내신 분..?_java  (0) 2022.12.08
      '개발/백준알고리즘' 카테고리의 다른 글
      • 11723번_집합_java
      • 23972번_악마의 제안_java
      • 15726번_이칙연산_java
      • 2563번_색종이_java
      syk531
      syk531
      기억을 위해 기록을.

      티스토리툴바