DongZip
close
프로필 사진

DongZip

github: @dongx0915

  • 분류 전체보기 (101)
    • 안드로이드 (49)
      • 개발 도구 (0)
      • 이론 (33)
      • 커스텀 뷰 (0)
      • 에러 해결 (4)
      • Hilt (2)
      • Compose (5)
      • 코드 저장 (1)
    • 알고리즘 (19)
      • 백준 (19)
    • 프로젝트 관리 & 협업 (4)
      • Github (4)
    • 독서 (18)
      • 코틀린 코루틴 (18)
      • 객체지향의 사실과 오해 (0)
    • 백엔드 (2)
      • Docker (2)
      • Spring Boot (0)
    • 디자인 (1)
    • 보안 (2)
      • SQL Injection (2)
    • 언어 (0)
      • JAVA (3)
  • 홈
  • 방명록
  • 깃허브
공지사항
전체 카테고리
  • 분류 전체보기 (101)
    • 안드로이드 (49)
      • 개발 도구 (0)
      • 이론 (33)
      • 커스텀 뷰 (0)
      • 에러 해결 (4)
      • Hilt (2)
      • Compose (5)
      • 코드 저장 (1)
    • 알고리즘 (19)
      • 백준 (19)
    • 프로젝트 관리 & 협업 (4)
      • Github (4)
    • 독서 (18)
      • 코틀린 코루틴 (18)
      • 객체지향의 사실과 오해 (0)
    • 백엔드 (2)
      • Docker (2)
      • Spring Boot (0)
    • 디자인 (1)
    • 보안 (2)
      • SQL Injection (2)
    • 언어 (0)
      • JAVA (3)
인기 글
전체 방문자
오늘
어제
[ 백준 1967 ] - 트리의 지름 (Kotlin)

[ 백준 1967 ] - 트리의 지름 (Kotlin)

1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 문제 이해 & 기본 개념 특정 노드 2개를 잡고 양쪽으로 당겼을 때, 가장 길게 늘어나는 경우를 트리의 지름이라 한다. dfs를 수행해서, 각 노드의 자식들 중 가장 큰 가중치 + 자신의 가중치를 리턴한다. 갈라지는 부분에선, 해당 노드가 중심이 될 수 있는 가능성이 있기에, 자식들의 가중치의 합 중 가장 큰 2개를 구해서 max와 비교한다. 양쪽으로 잡아 당길 때, 두 개를 잡고 당기기 때문에 상위 가중치 2개를 선택 중요 포인트 이진 트리..

  • format_list_bulleted 알고리즘/백준
  • · 2023. 2. 27.
[ 백준 2239 ] - 스도쿠 (Kotlin)

[ 백준 2239 ] - 스도쿠 (Kotlin)

2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다 www.acmicpc.net 문제 이해 & 기본 개념 스도쿠를 완성시키는 문제 시간 제한이 2초로 충분하므로 백트래킹을 이용하면 쉽게 풀 수 있다. 중요 포인트 가로, 세로, 3x3 사각형에서 중복되는 숫자가 없는지 확인해야한다. 가로, 세로에선 아래와 같이 쉽게 확인할 수 있다. map[x][y]와 for문의 위치가 같아지는 경우 continue로 처리해버리면, 세로의 경우를 체크하지 못할 수 있다. // map[x][y]와 중복되는 숫자가 있는지 체크하는 for문 for (i in..

  • format_list_bulleted 알고리즘/백준
  • · 2023. 2. 21.
[ 백준 2467 ] - 용액 (Kotlin)

[ 백준 2467 ] - 용액 (Kotlin)

2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 문제 이해 & 기본 개념 배열의 원소 중 2개의 합이 0에 가장 가까운 원소 쌍을 찾는 문제 투 포인터를 이용하면 쉽게 구할 수 있다. 중요 포인트 두 개의 포인터를 양 쪽 끝에서 시작하는게 포인트 최종 풀이 두 개의 포인터를 각각 배열의 맨 앞과 맨 뒤에 배치한다. 왼쪽 포인터를 당기는 경우 or 오른쪽 포인터를 당기는 경우 중 0에 더 가까워 지는 쪽으로 포인터를 이동한다. cur = abs(num[i] + num[j]) // 현재 두 원소의 합 if(..

  • format_list_bulleted 알고리즘/백준
  • · 2023. 2. 20.
[ 백준 2166 ] - 다각형의 면적(Kotlin)

[ 백준 2166 ] - 다각형의 면적(Kotlin)

2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 문제 이해 & 기본 개념 n개의 점으로 이루어진 다각형의 넓이를 구하는 문제 신발끈 공식을 이용하면 쉽게 풀 수 있다. 중요 포인트 N이 최대 10,000까지, 각 좌표의 절댓값이 최대 100,000이므로 Long 타입을 선택해야 한다. 신발끈 공식에서는 좌표를 이어지도록 나열하는 것이 중요한데, 해당 문제에서는 다각형을 이루는 순서대로 입력이 들어온다. 만약, 순서가 랜덤이라면 하나의 다각형으로 고정 되지 않기에 문제가 성립되지 않는다. 스페셜 저지면 가능하겠지만, 일반 문제이기 때문에..

  • format_list_bulleted 알고리즘/백준
  • · 2023. 2. 14.
[ 백준 1463 ] - 1로 만들기 (Kotlin)

[ 백준 1463 ] - 1로 만들기 (Kotlin)

1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 이해 & 기본 개념 아래 3가지 방법을 통해 입력 받은 수를 1로 만드는 것 X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 최소 횟수를 구해야하는 문제 3으로 나누는게 1을 빼는 것보다 수가 훨씬 작아지므로 자칫하면 그리디 문제로 오해할 수 있다. ex) n = 10 10 -> 9 -> 3 -> 1 10 -> 5 -> 4 -> 2 -> 1 이처럼 가능한 큰 수로 나누는 것보다 1을 먼저 빼는 경우가 최소 횟수가 될 수도 있기 때문에 dp를 이용한다. 최종 풀이 파란색이 처음 계산 되는 부분 빨간색이 중복 계산 되는 ..

  • format_list_bulleted 알고리즘/백준
  • · 2023. 2. 13.
[ 백준 11055 ] - 가장 큰 증가 부분 수열 (Kotlin)

[ 백준 11055 ] - 가장 큰 증가 부분 수열 (Kotlin)

11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 문제 이해 & 기본 개념 수열에서 증가하는 부분 (이어질 필요 x)에서 가장 합이 큰 경우를 찾아야하는 문제 중요 포인트 모든 경우의 수를 보는 방법도 있긴 하겠지만, 중복된 연산이 많이 발생 중복된 연산을 줄이기 위해 dp를 사용하면 간단하게 풀 수 있음 최종 풀이 점화식 dp[i] = max(dp[i], dp[j] + a[i]) i는 현재 위치, j는 이전에 선택된 원소의 위치 dp[i]는 i까지의 최..

  • format_list_bulleted 알고리즘/백준
  • · 2023. 2. 11.
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
Copyright © dongx._.2 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바