본문 바로가기

728x90
반응형

~2023

(160)
[Python] 백준 9663번 문제, N-Queen https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net N-Queen 문제는 위 그림과 같이 2차원 리스트를 사용해서 마지막 행까지 정상적으로 퀸이 놓여진다면 count++를 하고, 그렇지 않다면 다음 경우를 실행한다. 2차원 리스트로 사용해 하나씩 조건을 따진다면 코드가 복잡해질 것 같아 찾아보던 중에 1차원 리스트에서 인덱스 번호를 행으로, 인덱스 값을 열로 지정해 사용할 수 있었다. 그래서 위 그림과 같이 표현할 수 있다. 그럼 여기서 문제가 발생하는데 좌우로는..
[Python] 백준 14651번 문제, 걷다보니 신척역 삼(Large) https://www.acmicpc.net/problem/14651 14651번: 걷다보니 신천역 삼 (Large) 욱제는 ‘삼’이란 음절을 참 좋아한다. 인삼, 홍삼, 해삼, 삼성, 이춘삼(李春森), 삼식이, 삼시세끼, ㄴㄴ 그거 안 삼, 삼과 죽음, 알았삼, 걷다보니 신천역 삼, 그리고 특히 일이삼을 좋아한다. www.acmicpc.net 1부터 N자리까지의 1, 2, 0으로 구성된 3의 배수를 하나씩 구한다면, 실행 시간이 너무 길어 시간 초과가 뜰 것이다. 하나씩 다 구하면 시간 초과가 발생하기 때문에 뭔가 수학적 규칙을 찾아야한다. 수학적 규칙을 찾기 위해 조건에 맞는 낮은 자릿수를 직접 적어보자. N Result 1 0 2 2 3 6 4 18 5 54 이렇게 누적합이 생기는데 N자릿수의 값은 ..
[Python] 백준 2636번 문제, 치즈 https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 이 문제는 너비우선탐색을 이용한 시뮬레이션 문제이다. 보드판 위에 치즈가 있을 때, 치즈는 1개의 블록의 집합으로 이루어져있는데 1시간마다 치즈의 겉테두리이 녹는다. 즉, 치즈의 테두리가 1시간마다 사라진다는 것이다. 치즈 중간이 비어있어도 겉테두리와 연결되어 있지 않다면 녹지 않으며, 무조건 겉테두리만 1시간에 한 번씩 녹는다. 그래서 너비우선탐색으로 치즈의 겉테두리를 찾아낸 다음에 겉테두리 값을 1(치즈)에서 0..
[Python] 백준 5430번 문제, AC https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 선영이가 새로운 언어인 AC를 만들었는데 R과 D라는 메소드만 가지고 있다고 한다. R은 배열에 있는 숫자를 뒤집는 메소드이며, D는 첫번째 숫자를 삭제하는 메소드이다. 데큐를 이용하면 쉽게 문제를 풀 수 있다. D에 의해 삭제 되는 첫번째 숫자를 on_left를 통해 pop()을 할 지, popleft()를 할 지 결정한다. 그래서 현재 실행 메소드가 R이라면 on_left 상태를 변경해 D가 첫번째 숫자를 삭제할 수 있도록 한다. 그리고 error가..
[Python] 백준 14499번 문제, 주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 시뮬레이션 문제를 풀 때는 머리로 생각만 하기 보다는 그림을 직접 그려가며 풀면 해답에 쉽게 다가갈 수 있는 것 같다. 우선 문제에서 주사위 전개도를 그림 1과 같이 정의를 했지만, 직접 그려서 풀다 보면 저 형태가 불편하다. 그림 1은 윗면을 기준으로 풀어진 전개도이지만, 나는 바닥면을 기준으로 풀어진 전개도를 가지고 문제를 풀었..
[Python] 백준 6118번 문제, 숨바꼭질 https://www.acmicpc.net/problem/6118 6118번: 숨바꼭질 재서기는 수혀니와 교외 농장에서 숨바꼭질을 하고 있다. 농장에는 헛간이 많이 널려있고 재서기는 그 중에 하나에 숨어야 한다. 헛간의 개수는 N(2
[MAC/M1/Issue] M1 칩에서 pod install 이슈 해결하기 MacBook M1 칩에서 Firebase를 이용해 Swift 프로젝트를 진행하려고 했는데 pod install 하는 과정에서 에러가 발생했다. M1 칩 이슈라고는 하는데 구글링을 해보면 다른 고수분들이 해답을 찾아 올렸다. 그래서 에러에 대한 별다른 설명은 필요 없으니 내가 찾은 해답 코드를 공유하겠다. $ sudo arch -x86_64 gem install ffi # podFile이 있는 경로에서 arch -x86_64 pod install
[Python/미해결] 백준 1068번 문제, 트리 https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 문제에서는 주어진 노드를 지웠을 때, 리프 노드의 개수를 출력하는 것이다. 트리 구조를 class를 통해 만든 다음에 remove_target와 같은 값을 가진 노드를 삭제했다. 그렇다면 탐색을 통해 리프 노드의 개수를 구하기만 하면 된다. 따라서 전위 순회를 통해 순차적으로 노드를 확인하면서 리프 노드(자식의 개수가 0인 노드)라면 count를 증감시켜준다. node_list[]: inde..

728x90
반응형