Koder / 박성훈
article thumbnail
백준 BOJ 9663 - N-Queen
알고리즘/백준 BOJ 2020. 9. 14. 21:15

https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 웰노운인 N퀸문제이다. 백트래킹 기법을 사용해 풀수 있었다. func함수에서 탐색을 담당하는데 board배열은 각 행당 몇번째 열에 퀸이 들어가는가를 저장한다. 일단 k번째 열(처음에는 0번째열)의 i번째 열에 퀸을 배치해보고 chk함수를 통해서 같은 열에 퀸이 있는가? 와 대각선상에 퀸이 있는가? 를 판별한다 대각선상에 퀸이 있는지를 판별하기 위해서는 board[i]-board[k](열간의 거리) = k-i(행..

article thumbnail
백준 BOJ 2272 - 램프
알고리즘/백준 BOJ 2020. 9. 14. 19:39

https://www.acmicpc.net/problem/2272 2272번: 램프 첫째 줄에 N(1 ≤ N ≤ 1,000,000), M(0 ≤ M ≤ 1,000,000,000)이 주어진다. N개의 줄에는 0 또는 1이 주어진다. www.acmicpc.net 아는분이 풀어서 나도 고민해서 풀어보았다 그분과 플래V 누가 먼저가는지 사소한 경쟁 중인데 열심히 노력해야겠다. 한칸 쉬프트연산( kline = 1 + 0 * (k-1) + 1 형태. int arr[1000000]; int tmp[1000000]; int main(){ int n,m; scanf("%d %d", &n, &m); for(int i=0; i

article thumbnail
백준 BOJ 16482 - 한 점에서 만나라!
알고리즘/백준 BOJ 2020. 9. 9. 21:45

체바 정리를 활용하면 무난하게 풀 수 있다. https://namu.wiki/w/%EC%B2%B4%EB%B0%94%20%EC%A0%95%EB%A6%AC 체바 정리 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권� namu.wiki EA길이를 구할 수 없기 때문에 CE/EA를 구한 뒤 CE : EA의 비율을 통해 CE를 구하게 된다. https://www.acmicpc.net/problem/16482 16482번: 한 점에서 만나라! 영철이는 작도하는 것을 좋아한다. 특히, 삼각형을 이용해서 작도하는 것을 더 좋아한다. 영철이가 종이..

백준 BOJ 2667 - 단지번호붙이기
알고리즘/백준 BOJ 2020. 9. 7. 21:16

매일 문제 하나씩은 풀어보려 하고 있다. https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. � www.acmicpc.net 일단 25x25의 상대적으로 좁은 공간이라 배열을 좀 넉넉히 선언해줬고, 배열을 한번 다 훝고지나가면서 탐색해도 시간복잡도는 문제가 없겠다 싶어서 배열을 싹 훝고 만약 값이 1이라면 재귀함수를 돌려서 그와 인접한 건물들을 싹다 0으로 만들고(중복 없애려고) 카운터를 하나씩 올려줬다. #include #include int arr[1001] = {0}; ch..

article thumbnail
백준 BOJ 1010 - 다리 놓기
알고리즘/백준 BOJ 2020. 9. 6. 18:25

오늘 수학학원에서 배운 내용이 사실상 그대로 나왔다. 그냥 M개중에 N개 뽑아서 순서대로 할당해주면 겹치지 않게 다리를 놓을 수 있다 그렇게 보면 이 문제는 단순히 mCn을 구하는 문제로 변한다. https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net #include typedef long long int ll; ll nCr(ll n, ll r){ ll sum = 1; for(int i=0; i

반응형