본문 바로가기 메뉴 바로가기

kthng

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

kthng

검색하기 폼
  • 분류 전체보기 (80)
    • Problem Solving (80)
  • 방명록

2016/08 (42)
boj 2248 : 이진수 찾기

boj 2248 : 이진수 찾기 https://www.acmicpc.net/problem/2248 처음에 단순 완전 순열 탐색 DFS로 찾으니 역시나 시간초과. ㅜㅜ다른방법을찾았다. 1. 맨 앞에 1을 두고 나머지 자리수를 0으로 채우면 최소 몇번째 숫자일까?2. 맨 앞에 0을 두고 나머지 자리수를 0으로 채우면 최소 몇번째 숫자일까? 위의 1,2 두가지의 값으로 찾았다. 1. N, K : 각각 남은 자릿수, 남은 1의 갯수2. a[N][K] : N의 자리에 1을 채우고 나머지를 0으로 채웠을 때 몇번째 값인지?3. a[N][K] = sum{ (N-1,0) ~ (N-1,K) } : (i,j) 는 iCj (i combination j) a[N][K]가 주어진 I보다 작거나 같으면 N의 자리에 1을 채우고,..

Problem Solving 2016. 8. 24. 18:21
boj 12019 : 동아리방 청소!

boj 12019 : 동아리방 청소! https://www.acmicpc.net/problem/12019 DP로 해결하였다.1. a[i][j][k] : i번째 날 j번의 청소가 남았을 때 k의 더러움2. b[i] : i번째 날에 오기로 한 사람 수3. a[i][j][k] = min(a[i + 1][j - 1][0] + k*b[i], a[i + 1][j][k + b[i]] ) 다른 AC 코드를 보니 더 간단한 풀이가 있는 것 같은데... 생각해봐야겠다

Problem Solving 2016. 8. 24. 18:09
boj 2253 : 점프

boj 2253 : 점프 https://www.acmicpc.net/problem/2253 DP로 해결 가능하다. 1. a[i][j] : i번째 돌에 j만큼 건너뛰어 도착 했을때 건너뛴 횟수2. a[i][j] = min(a[i - j - 1][j + 1], a[i - j][j], a[i - j + 1][j - 1]) + 1 i번째 돌이 도달할 수 없는 돌이라면 INF값을 대입한다.

Problem Solving 2016. 8. 24. 18:03
boj 10158 : 개미

boj 10158 : 개미 https://www.acmicpc.net/problem/10158 x축, y축 따로따로 계산하면 쉽다. 문제에서 1. (p,q) : 초기 개미의 위치2. t : 이동 횟수3. w , h : 가로,세로 너비, 높이 위와 같이 주어지면 1. p + t : 는 개미가 x축으로 이동할 횟수,2. q + t : 는 개미가 y축으로 이동할 횟수 1,2 두 개를 가지고 간단한 수식으로 답을 표현할 수 있다.개미는 x축, y축으로 독립적으로 왔다 갔다 하므로 최종 x의 위치는 다음과 같다. y 좌표도 마찬가지로 구할 수 있다.

Problem Solving 2016. 8. 24. 17:50
boj 2688 : Non-Decreasing Digits

boj 2688 : Non-Decreasing Digits https://www.acmicpc.net/problem/2688 DP로 간단하게 해결 가능하다. 1. a[i][j] : i번째 j로 끝나는 경우의 수2. a[i][j] = sum{ a[i - 1][0] ~ a[i - 1][j] }

Problem Solving 2016. 8. 24. 17:23
boj 2469 : 사다리타기

boj 2469 : 사다리타기 https://www.acmicpc.net/problem/2469 사다리의 위에서 부터 blank line을 만날 때까지 내려가고, 아래서부터 blank line을 만달 때까지 올라온 string을 각각 a,b라고 하면 1. a[i] = b[i] 일 경우 * 표시,2. a[i] = b[i + 1] && a[i + 1] = b[i] 이고 이전에 '-' 표시를 하지 않았다면 '-'표시3. 1,2 둘다 아닌 경우는 만족하는 사다리를 만들 수 없다.

Problem Solving 2016. 8. 22. 23:19
boj 10159 : 저울

boj 10159 : 저울 https://www.acmicpc.net/problem/10159 플로이드 알고리즘과 유사한 방법으로도 풀 수 있다. a b의 경로가 있는가? 로 변환된다.a b 이고 b -> c일 때 a -> b -> c 이므로 a -> c 이다. 1. a와 b의 관계를 구할 수 있는가?2. a b 이거나 b -> a 인가? 1,2,3은 동치이므로 a와 b의 관계를 구할수 있는가? 라는 질문은a -> b의 경로 혹은 b -> a의 경로가 있는가? 라는 질문으로 변형하여 floyd 알고리즘으로 푼다. 시간 복잡도는 n^3

Problem Solving 2016. 8. 22. 22:36
boj 2602 : 돌 다리 건너기

boj 2602 : 돌 다리 건너기 https://www.acmicpc.net/problem/2602 간단한 DP로 해결 가능하다. 1. 순서대로 방문해야하는 문자열을 s, 천사다리를 ss[0], 악마다리를 ss[1]이라 두고,a(i, j, k)를 i개의 문자열을 이용했을 때 j다리 k번째 위치까지의 경우의 수로 두면 2. a(i, j, k) = sum{ a(i-1, !j, 1~k) } ( ss[j][k] = s[i] 일 때) 이와같이 점화식을 세우면 간단하게 답을 출력할 수 있다.

Problem Solving 2016. 8. 20. 00:47
boj 5397 : Keylogger

boj 5397 : Keylogger https://www.acmicpc.net/problem/5397 2개의 stack을 이용해서 간단하게 해결 할 수 있다.커서가 현재 위치하고 있는 곳을 기준으로 왼쪽 문자열은 left stack에, 오른쪽 문자열은 right stack에 넣어준다. 의 경우 반대로 right stack에서 pop하여 left stack에 push.-의 경우 left stack을 pop.charactor의 경우 left stack에 push. 위의 4가지 연산으로 모두 해결 가능하다.

Problem Solving 2016. 8. 19. 22:42
boj 9665 : GMO

boj 9665 : GMO https://www.acmicpc.net/problem/9665 문제를 잘 못 이해해서 여러 번 틀렸고, 제대로 이해한 후에도 어렵게 생각하여 시간초과를 냈다...사실은 쉬운 문제이다.역시 알고리즘은 열린 사고를 강요한다. ㅎㅎㅎㅎ N*M 만에 풀리는 기초적으로 떠올릴 수 있는 알고리즘으로 해결할 수 있다.돼지 유전자를 사과 유전자가 대체할 수 있으면 사과 유전자로 하고, 사과 유전자로 대체할 수 없으면 돼지 유전자를 이용한다.이 방법으로 사과 유전자의 모든 위치에서 돼지 유전자를 주입할 때의 코스트를 구하고, 그 코스트들 중 최소값을 출력하면 정답.

Problem Solving 2016. 8. 19. 01:18
이전 1 2 3 4 5 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 백준 1799
  • 백준 비숍
  • 백준 1806
  • 2469
  • 연습문제
  • boj 용액
  • dp
  • 백준 도시 분할 계획
  • scpc
  • BOJ
  • 백준 7579 앱
  • boj 1799
  • 알고리즘
  • 네블컵 2회
  • 백준알고리즘
  • 10159
  • 백준 앱
  • 문제 풀이
  • 백준
  • 백준 용액
  • boj 앱
  • boj 7579
  • codeground
  • 풀이
  • 백준 부분합
  • boj 1806
  • 도시 분할 계획
  • 백준 2467 용액
  • SCPC 2016
  • 백준 1647
more
«   2016/08   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바