온라인저지 144

[BOJ] 1182번: 부분집합의 합

https://www.acmicpc.net/problem/1182모든 경우를 다 탐색하면 된다. 재귀 호출을 통해 풀 수도 있고 n이 20으로 작기 때문에 비트마스크를 이용해서 해결할 수 있다.재귀 호출을 통해 문제를 푸는 경우 -> 현재 이 인덱스의 값을 더하거나 안 더하거나(인덱스만 증가시키거나)로 전체를 탐색할 수 있다. 정말 뻘짓을 많이 해서 친구의 도움을 많이 받았는데 연습 밖에는 답이 없는 듯하다. 소스코드비트 마스크12345678910111213141516#include int main(){ int N, S, arr[20], count = 0; scanf("%d%d", &N, &S); for (int i = 0; i

온라인저지 2018.07.26

[BOJ] 14650번: 걷다보니 신천역 삼 (Small)

14650번: 걷다보니 신천역 삼 (Small) 14650번: 걷다보니 신천역 삼 (Small) 욱제는 ‘삼’이란 음절을 참 좋아한다. 인삼, 홍삼, 해삼, 삼성, 이춘삼(李春森), 삼식이, 삼시세끼, ㄴㄴ 그거 안 삼, 삼과 죽음, 알았삼, 금강삼도 식후경, 걷다보니 신천역 삼, 그리고 특히 일이삼을 좋아한다. 그래서 욱제는 3을 가지고 놀아보기로 했삼. 3개 숫자(0, 1, 2)만 가지고 N자리 3의 배수를 만들어 보삼. 만드는 배수는 자연수 이삼. 0으로 시작하는 수는 만들 수 없는 수 이삼. 3의 배수가 몇 개나 나올 수 있삼? www.acmicpc.net N의 최대 크기가 9이기 때문에 brute force를 해도 되지만 간단한 dp 문제로 풀 수 있다. 참고: 14651번: 걷다보니 신천역 삼..

온라인저지 2018.07.19

[BOJ] 1011번: Fly me to the Alpha Centauri

1011번: Fly me to the Alpha Centauri 이동 횟수와 거리 간의 관계가 있다. 이동 횟수 거리 표시 이동 가능 거리 1 1 1 2 1 1 2 3 1 2 1 3 - 4 4 1 2 2 1 5 - 6 5 1 2 3 2 1 7 - 9 6 1 2 3 3 2 1 10 - 12 예를 들어 우리가 5만큼의 거리를 간다고 하자. 그렇다면 우리는 4번만 이동하면 된다. 규칙을 잘 찾아서 구현을 해주면 완성이다. 코드 #include int t; int main() { scanf("%d", &t); while (t--) { int d, a; // departure, arrival; scanf("%d %d", &d, &a); for (int i = 1;; ++i) if (a - d

온라인저지 2018.07.19