이 영역을 누르면 첫 페이지로 이동
hoonDEV 블로그의 첫 페이지로 이동

hoonDEV

페이지 맨 위로 올라가기

hoonDEV

분류 전체보기

  • hoonDEV
알고리즘 공부 계획 3/29~4/5

알고리즘 공부 계획 3/29~4/5

2020.03.30
공부 계획 동적 계획법(DP) 문제를 하루에 최소 1 ~ 2문제 풀고, 풀이 방법을 일관되게 익힐 것. 종만북에서 트리, 그래프, 문자열 쪽 공부할 것. 3월 29일 BOJ 1057, 1697, 6603, 1012, 어제 풀었던 문제 정리 (완료) 3월 30일 BOJ 1929, 11726, 17839, 어제 풀었던 문제 정리, 오늘 풀었던 문제 정리, C++ map, unordered_map, multimap 정리 (완료) 3월 31일 BOJ 17839, 2178, 1011, 11057 (완료) 4월 1일 BOJ 11048, 11055, 1920 (완료) 4월 2일 BOJ 6010, 1992, C++ STL lower_bound, upper_bound, binary_search 등등 공부 (완료) 4월 ..
BOJ 2293 - 동전 1 문제풀이

BOJ 2293 - 동전 1 문제풀이

2020.03.27
문제를 읽고 이해하기 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 경우의 수는 231보다 작다. 재정의와 추상화 이 문제는 포인트를 잘 잡으면 정말 쉽게 풀 수 있지만, 포인트를 못잡고 헤매는 경우 굉장히 번거롭게 느껴질 수 있는 문제이다. 필..
BOJ 2941 - 크로아티아 알파벳 문제풀이

BOJ 2941 - 크로아티아 알파벳 문제풀이

2020.03.27
문제를 읽고 이해하기 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다. 단어는 크로아티아 알파..
BOJ 11725 - 트리의 부모 찾기 문제풀이

BOJ 11725 - 트리의 부모 찾기 문제풀이

2020.03.27
문제를 읽고 이해하기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다. 출력 첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다. 재정의와 추상화 DFS, BFS 개념을 알고 있는 상태에서 직접 그래프를 그려보면 금방 풀 수 있는 문제이다. 먼저 해당 정점의 부모를 저장하는 int형 mother[100001]이라는 배열을 선언한다. DFS, BFS를 돌면서 현재 노드의 번호를 now라고 하고, now와 연결된 노드의 번호를 next라고 하였을 때, mot..
BOJ 1890 - 점프 문제풀이

BOJ 1890 - 점프 문제풀이

2020.03.26
문제를 읽고 이해하기 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 점프를 하는 두 경우만 존재한다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N..
BOJ 1655 - 가운데를 말해봐 문제풀이

BOJ 1655 - 가운데를 말해봐 문제풀이

2020.03.26
문제를 읽고 이해하기 수빈이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 수빈이가 정수를 하나씩 외칠때마다 동생은 지금까지 수빈이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 수빈이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 수빈이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 수빈이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오. 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수..
BOJ 11279 - 최대 힙 문제풀이

BOJ 11279 - 최대 힙 문제풀이

2020.03.25
문제를 읽고 이해하기 널리 잘 알려진 자료구조 중 최대 힙이라는 것이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 2^31보다 작다. 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인데 가장 작은 값을 출..
BOJ 1927 - 최소 힙 문제풀이

BOJ 1927 - 최소 힙 문제풀이

2020.03.25
문제를 읽고 이해하기 널리 잘 알려진 자료구조 중 최소 힙이라는 것이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 2^31보다 작다. 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인데 가장 작은 값을 ..
BOJ 1427 - 소트인사이드 문제풀이

BOJ 1427 - 소트인사이드 문제풀이

2020.03.25
문제를 읽고 이해하기 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 재정의와 추상화 입력 예제를 보면, 평소와는 다르게 수를 2143 이와 같이 붙여서 쓴다. 이 경우, 일반적으로 cin >> (int variable)을 쓸 경우 2, 1, 4, 3이 따로 들어가는 것이 아니라 2143 뭉텅이로 하나의 수로 들어가게 된다. 이러한 문제를 해결하기 위해서는 두 가지 방법이 존재한다. 입력을 문자열로 받아 string형 변수에 저장한다. scanf("%1d", &(int variable));을 사용한다. 둘..
BOJ 1181 - 단어 정렬 문제풀이

BOJ 1181 - 단어 정렬 문제풀이

2020.03.25
문제를 읽고 이해하기 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 재정의와 추상화 정렬 문제 문제에서 요구한 조건 2개를 순서대로 정렬해야 한다. 즉, 정렬 알고리즘은 아래와 같이 구현한다. 길이가 같다면, 사전순으로 정렬한다. 길이가 다르다면 길이를 기준으로 오름차순으로 정렬한다. bool comp..
BOJ 1026 - 보물 문제풀이

BOJ 1026 - 보물 문제풀이

2020.03.25
문제를 읽고 이해하기 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] * B[0] + ... + A[N-1] * B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 재정의와 추상화 정렬 문제 문제에서 A만 재배열하여 A[0] * B[0]부터 A[N-1] * B[N-1]까지 더한 값의 최소값을 출력하라고 했다. 이 값이 최소가 되려면 A의 최대값은 B의 최소값과 곱해져야 하고, A의 최소값은 B의 최대값과 곱해져야 한다. 즉, A는 ..
알고리즘 공부 계획 3/23 ~ 3/28

알고리즘 공부 계획 3/23 ~ 3/28

2020.03.24
공부 계획 동적 계획법(DP) 문제를 하루에 최소 1 ~ 2문제 풀고, 풀이 방법을 일관되게 익힐 것. 종만북에서 트리, 그래프, 문자열 쪽 공부할 것. 3월 23일 휴식 3월 24일 BOJ 9461(DP), 1309(DP), 1904(DP), 2133(DP) 선형 자료 구조 완결 및 정리, 트리의 구현과 순회 공부 (완료) 3월 25일 BOJ 1026(정렬), 1181(정렬), 1427(정렬), 1927(힙), 11279(힙), 1655(힙), 1890(DP) (완료) 3월 26일 BOJ 11725(BFS/DFS), 2750(구현), 1316(구현), 1018(브루트포스), 2941(문자열) (완료) 3월 27일 BOJ 2468(브루트 포스), 2293(DP), 9935(문자열) (완료) 3월 28일 휴식
  • 최신
    • 1
    • ···
    • 4
    • 5
    • 6
    • 7
    • 8
  • 다음

정보

hoonDEV 블로그의 첫 페이지로 이동

hoonDEV

  • hoonDEV의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그

카테고리

  • 분류 전체보기 (91)
    • 일상 (13)
      • 후기 (1)
      • 계획 (11)
    • 공지사항 (1)
    • 알고리즘 (54)
      • 문제풀이 (53)
      • 이론 (1)
    • 공부 (19)
      • React (0)
      • Angular (5)
      • Java (3)
      • C, C++ (3)
      • JavaScript (6)
      • WEB (2)
    • 디자인 (1)
      • UI, UX (1)
    • 개발 (0)
      • boom (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 백준
  • dp
  • 알고리즘
  • es6
  • 문제풀이
  • javascript
  • 그리디
  • 이분탐색

나의 외부 링크

정보

훈개발자의 hoonDEV

hoonDEV

훈개발자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 훈개발자. Designed by Fraccino.

티스토리툴바