전체

    백준 16926 배열 돌리기 1(구현) ★

    https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net ● 배열을 돌리기 위한 다양한 방법 중에 deque.rotate()를 사용하는 방법을 택했다. ● 2차원의 배열을 1차원으로 바꿔준다음에 rotate()를 돌리면 된다. ● 반시계 방향이기때문에 순서에 유의하며 1차원으로 바꿔주고 몇번 회전을 시킬껀지 rotate(r) 해준다. ● 똑같은 순서에 맞춰서 ..

    백준 1461 도서관(구현, 그리디)

    https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 규칙을 찾는게 중요한 문제였다. 시작점 0에서 음수, 양수 편을 나누고 m만큼 left[m * i] , right[m * i] 간다음에 제일 큰 수에서는 0으로 다시 돌아오지 않고 그 자리에서 끝나면 된다. 유의할점은 left, right의 길이가 m으로 나누어 떨어지지 않을 경우 나머지 k만큼 먼저 간다음에 k에서 시작하여 m*i 만큼 계속 더해주는게 핵심이였다. n,m = list(map(int,i..

    백준 16943 숫자 재배치(순열, 구현)

    https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0 www.acmicpc.net 간단하지만 표현할 수 있는 방법이 많아 시간을 많이 쓴 문제 였다. permutation을 한 다음 숫자를 하나씩 비교해서 갱신하면 되는 문제다. 여기서 point는 permutation 라이브러리를 써서 순열을 만들면 작은 수부터 순서대로 저장되는게 아니다. 0으로 시작하는 수는 제외하고 순열을 탐색하면서 b보다 작은 값들에서 max값을 갱신 시키면 된다. from ite..

    백준 1911 흙길 보수하기(구현,그리디)

    https://www.acmicpc.net/problem/1911 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1

    백준 15729 방탈출(그리디)

    https://www.acmicpc.net/problem/15729 15729번: 방탈출 첫째 줄에 N(1 ≤ N ≤ 1,000,000)가 주어지고 둘째 줄에는 쪽지에 적혀 있는 N자리의 수가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 버튼을 누르면 오른쪽 2번째 까지 같이 눌리는 시스템이다. 버튼을 최소로 누르면서 결과값을 맞춰야하기 때문에 그리디적으로 접근을 해야했고 직접 몇개 그려서 보니까 i번째 버튼을 누르면 i를 포함해서 그전에 있는 버튼은 다시 누를 필요가 절때 없다.(그리디) 따라서 for를 n의 크기만큼 탐색하면서 temp = [0] * n 을 하나 만들고 똑같이 만들어질 때 까지 cnt를 늘리면 되는 문제다. n = int(input()) data = list(map(i..

    백준 2072 오목(구현)

    백준 2072 오목(구현)

    https://www.acmicpc.net/problem/2072 2072번: 오목 19x19크기의 바둑판에, 돌을 놓을 좌표가 주어지면 이 게임이 몇 수만에 끝나는 지를 알아보려고 한다. 사용하고자 하는 바둑판의 모양은 위의 그림과 같으며, (1, 1)이 가장 왼쪽 위의 좌표이고 (19 www.acmicpc.net 처음엔 간단하게 돌을 놓은 순간 board 전체를 탐색해서 5칸이 이어진 구간이 있으면 그 순간의 i를 출력하는 간단한 문제로 생각했다. 하지만 이러한 경우 때문에 생각외로 잘 풀리지 않아 많은 시도를 한 후에 겨우 풀었다. 저런 조건때문에 탐색을 시작한 지점(x,y)에 대해 8방향까지 (x+5,y+5) 이렇게 탐색 하는 방법은 올바르지 않은 탐색이다. (x,y)로 부터 8방향을 탐색하는데 ..