꾸준히 개발하자

고정 헤더 영역

글 제목

메뉴 레이어

꾸준히 개발하자

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (115)
    • Computer Graphics (58)
      • SCOP (9)
      • HumanGL (9)
      • Graphics Pipeline (10)
      • ALEngine (21)
      • Hiking (9)
    • 자료구조와 알고리즘 (43)
      • 백준 (14)
      • 자료구조, 알고리즘 (29)
    • Java 공부 (5)
      • Java 공부 (1)
      • Java 주차별 공부 (3)
      • 더 자바, 코드를 테스트하는 다양한 방법 (1)
    • 리눅스 (8)
      • 리눅스 기초 (8)

검색 레이어

꾸준히 개발하자

검색 영역

컨텐츠 검색

전체 글

  • 백준 16566 [카드 게임]

    2023.07.01 by Banjosh

  • 백준 2887 [행성터널]

    2023.06.27 by Banjosh

  • 백준 2098 [외판원 순회]

    2023.06.21 by Banjosh

  • 비트 마스킹 (BitMasking) & 백준 13701 (중복 제거)

    2023.06.16 by Banjosh

  • 백준 1450 [냅색문제]

    2023.05.25 by Banjosh

  • 백준 3273 [두 수의 합]

    2023.05.23 by Banjosh

  • 백준 11066 [파일 합치기]

    2023.05.16 by Banjosh

  • Optional 클래스

    2023.05.09 by Banjosh

백준 16566 [카드 게임]

문제 철수와 민수는 카드 게임을 즐겨한다. 이 카드 게임의 규칙은 다음과 같다. N개의 빨간색 카드가 있다. 각각의 카드는 순서대로 1부터 N까지 번호가 매겨져 있다. 이 중에서 M개의 카드를 고른다. N개의 파란색 카드가 있다. 각각의 카드는 순서대로 1부터 N까지 번호가 매겨져 있다. 이 중에서 빨간색에서 고른 번호와 같은 파란색 카드 M개를 고른다. 철수는 빨간색 카드를 가지고 민수는 파란색 카드를 가진다. 철수와 민수는 고른 카드 중에 1장을 뒤집어진 상태로 낸다. 그리고 카드를 다시 뒤집어서 번호가 큰 사람이 이긴다. 이 동작을 K번 해서 더 많이 이긴 사람이 최종적으로 승리한다. 한 번 낸 카드는 반드시 버려야 한다. 철수는 뛰어난 마술사이기 때문에 본인이 낼 카드를 마음대로 조작할 수 있다...

자료구조와 알고리즘/백준 2023. 7. 1. 13:32

백준 2887 [행성터널]

문제 때는 2040년, 이민혁은 우주에 자신만의 왕국을 만들었다. 왕국은 N개의 행성으로 이루어져 있다. 민혁이는 이 행성을 효율적으로 지배하기 위해서 행성을 연결하는 터널을 만들려고 한다. 행성은 3차원 좌표위의 한 점으로 생각하면 된다. 두 행성 A(xA, yA, zA)와 B(xB, yB, zB)를 터널로 연결할 때 드는 비용은 min(|xA-xB|, |yA-yB|, |zA-zB|)이다. 민혁이는 터널을 총 N-1개 건설해서 모든 행성이 서로 연결되게 하려고 한다. 이때, 모든 행성을 터널로 연결하는데 필요한 최소 비용을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109..

자료구조와 알고리즘/백준 2023. 6. 27. 12:52

백준 2098 [외판원 순회]

문제 외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자. 1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다. (길이 없을 수도 있다) 이제 한 외판원이 어느 한 도시에서 출발해 N개의 도시를 모두 거쳐 다시 원래의 도시로 돌아오는 순회 여행 경로를 계획하려고 한다. 단, 한 번 갔던 도시로는 다시 갈 수 없다. (맨 마지막에 여행을 출발했던 도시로 돌아오는 것은 예외) 이런 여행 경로는 여러 가지가 있을 수 있는데, 가장 적은 비용을 들이는 여행 계획을 세우고자..

자료구조와 알고리즘/백준 2023. 6. 21. 17:41

비트 마스킹 (BitMasking) & 백준 13701 (중복 제거)

비트 마스킹이란? 정수의 이진수 표현을 자료구조로 쓰는 기법으로 0, 1로 true/false, on/off와 같은 상태를 나타내는 것이 가능하다. 비트 마스크의 장점 1. 빠른 수행시간 - 비트 마스킹은 bit연산이므로 거의 모든 연산이 O(1)의 시간 복잡도를 갖고 있다. 2. 간결한 코드 - 다양한 집합 연산을 비트 연산자를 이용하여 한 줄로 작성이 가능하다. 3. 작은 메모리 사용량 - 1bit로 상태 저장이 가능하므로 메모리 사용량이 적어 DP에 유리하다. 비트 연산자 비트 연산자 논리 의미 & AND 양쪽 비트가 모두 1인 경우에만 1, 나머지 모든 경우 0 | OR 양쪽 비트가 모두 0인 경우에만 0, 나머지 모든 경우 1 ^ XOR 양쪽 비트가 서로 다른 경우 1, 같은 경우 0 ~ NOT..

자료구조와 알고리즘/자료구조, 알고리즘 2023. 6. 16. 20:47

백준 1450 [냅색문제]

문제 세준이는 N개의 물건을 가지고 있고, 최대 C만큼의 무게를 넣을 수 있는 가방을 하나 가지고 있다. N개의 물건을 가방에 넣는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다. 출력 첫째 줄에 가방에 넣는 방법의 수를 출력한다. https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다...

자료구조와 알고리즘/백준 2023. 5. 25. 03:01

백준 3273 [두 수의 합]

문제 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력 문제의 조건을 만족하는 쌍의 개수를 출력한다. https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다..

자료구조와 알고리즘/백준 2023. 5. 23. 07:25

백준 11066 [파일 합치기]

문제 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 장들이 연속이 되도록 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 합칠 때 필요한 비용(시간 등)이 두 파일 크기의 합이라고 가정할 때, 최종적인 한 개의 파일을 완성하는데 필요한 비용의 총 합을 계산하시오. 예를 들어, C1, C2, C3, C4가 연속적인 네 개의 장을 수록하고 있는 파일이고, 파일 크기가 각각 4..

자료구조와 알고리즘/백준 2023. 5. 16. 19:36

Optional 클래스

자바 Spring공부를 하다가 Optional이라는 클래스를 처음봐서 따로 어떤 역할을 하는 클래스인지 찾아보았다. 강의에서 사용한 코드는 다음과 같다. @Override public Optional findById(Long id) { return Optional.ofNullable(store.get(id)); } Optional 클래스란? Optional 클래스는 T타입의 객체를 포장해주는 Wrapper class이다. 보통 어떤 객체의 값에 null이 올 수 있으면 항상 null예외처리(NullPointerException)를 해줘야하는데 Optional을 이용하면 이를 쉽게 처리를 할 수 있다. Optional객체를 만드는 방법에는 3가지가 있다. Optional객체를 만드는 법 1. Optiona..

Java 공부/Java 공부 2023. 5. 9. 17:03

추가 정보

인기글

최신글

페이징

이전
1 ··· 6 7 8 9 10 11 12 ··· 15
다음
TISTORY
꾸준히 개발하자 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바