"꾸준하고 완벽한 한 걸음"

Simulation 8

[백준 13419] 탕수육 [Java]

문제https://www.acmicpc.net/problem/13419 풀이주어진 문자열에 대해 두 명이 탕수육 게임을 한다고 한다.자신의 차례 때 말해야 하는 문자로만 이루어진 최소 문자열을 출력하는 문제다.자신의 순서(0 또는 1번 인덱스)에서 2개씩 건너뛰며 다시 자신의 순서로 돌아올 때 까지 문자를 선택하면 된다. int idx = 0; StringBuilder a = new StringBuilder(); StringBuilder b = new StringBuilder(); do { a.append(S.charAt(idx)); idx = (idx + 2) % S.le..

[백준 15685] 드래곤 커브 [Java]

문제https://www.acmicpc.net/problem/15685 풀이문제에서 주어진 조건대로 드래곤 커브를 만들고, 네 꼭짓점이 드래곤 커브의 일부분인 1x1 크기의 정사각형의 수를 세는 문제다.우선, 드래곤 커브의 규칙부터 알아보자.시작점에서 시작방향으로 1칸 이동 후 끝점을 기준으로 지금까지 그린 드래곤 커브를 시계 방향으로 90도 회전해야 한다.이때, 드래곤 커브의 모든 변은 위치와 방향에 관계없이 결국 시계 방향으로 90도 회전을 한다.0: x좌표가 증가하는 방향 (→)1: y좌표가 감소하는 방향 (↑)2: x좌표가 감소하는 방향 (←)3: y좌표가 증가하는 방향 (↓)방향 변화에 대해 다음과 같은 규칙이 성립한다.0 → 11 → 22 → 33 → 0각 부분 드래곤 커브들의 방향 변화 규칙..

[백준 17554] City of Lights [Java]

문제https://www.acmicpc.net/problem/17554 풀이처음에는 켜져있는 N개의 전구에 대해 K번 동안 N이하의 i배수 번째의 전구들을 토글할 때 최대한 많이 꺼진 전구의 수를 구하는 문제다.처음에는 전구를 전부 켜주고, boolean[] light = new boolean[N]; Arrays.fill(light, true);K개의 i를 입력 받아, i의 배수들을 전부 토글하면 된다. int res = 0; while (K-- > 0) { final int i = Integer.parseInt(br.readLine()); // Solve int cur = -1; ..

[코드트리] 트로미노 [Python] for 코드트리 조별과제

풀이좌측 상단부터 우측 하단으로 탐색하며 현재 위치에서 놓는 블럭들에 대해 전부 계산하면 된다.블럭을 놓는 방법은 아래와 같이 총 6개가 있다. 범위를 벗어나지 않으면서 블럭을 놓을 수 있는 경우에만 계산해야 한다.board[i][j] + board[i][j + 1]의 경우와board[i][j] + board[i + 1][j]의 경우로 나누었다.소스코드보기출처 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai

카테고리 없음 2024.08.04

[코드트리] 행복한 수열의 개수 [Python] for 코드트리 조별과제

풀이배열의 가로/세로줄에 대해 연속으로 동일한 숫자가 M개 이상인 라인의 갯수를 출력하는 문제다.입력을 받고 계산의 편의를 위해 각 가로/세로 줄의 정보를 가지는 리스트를 생성하자.우선 가로 줄에 대해 계산을 해주자. line에는 i번째 가로줄을 담아주어야 하는데 세로줄을 계산할 때는 각 요소를 리스트 내부에 복사해야 한다. 때문에 먼저 계산하는 가로줄에서는 board[i]를 그대로 담는게 아닌, 복사를 해주어야 한다.만약 세로줄부터 계산한다면 그냥 board[i]를 담아도 된다. 이제 각 줄이 행복한 수열을 가지는지 확인하는 함수를 생성하자.이전 요소와 동일한지 확인해주며 연속된 부분 수열의 길이를 구하면 된다. 만약 동일한 요소가 아니라면 자기 자신이 연속된 부분 수열의 최대 길이가 되기 때문에 1로..

PS 2024.07.28

[백준 11559] Puyo Puyo [Python]

문제뿌요뿌요의 룰은 다음과 같다.필드에 여러 가지 색깔의 뿌요를 놓는다. 뿌요는 중력의 영향을 받아 아래에 바닥이나 다른 뿌요가 나올 때까지 아래로 떨어진다.뿌요를 놓고 난 후, 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다. 이때 1연쇄가 시작된다.뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 역시 중력의 영향을 받아 차례대로 아래로 떨어지게 된다.아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마다 1연쇄씩 늘어난다.터질 수 있는 뿌요가 여러 그룹이 있다면 동시에 터져야 하고 여러 그룹이 터지더라도 한번의 연쇄가 추가된다.남규는 최근 뿌요뿌요 게임에 푹 빠졌..

[백준 05612] 터널의 입구와 출구 [Python]

문제상근이는 남산1호터널의 입구와 출구에서 1분에 통과하는 차량의 수를 조사했다. 이때, 터널에 차량이 가장 많이 있었을 때, 몇 대 있었는지 구하는 프로그램을 작성하시오.입력첫째 줄에 조사한 시간 n이 주어진다. 둘째 줄에는 조사를 시작할 때, 터널 안에 들어있는 차량의 수 m이 주어진다. 다음 n개 줄의 i번째 줄(i = 1 ~ n)의 정보는 조사를 시작한지 (i-1)분이 경과한 시점부터 i분 경과할 때 까지 1분에 입구를 통과한 차의 수와 출구를 통과한 차의 수이다. n은 10000보다 작거나 같고, 1분에 통과하는 차량의 수는 100이하이다.출력조사 시작하고 j분이 지난 시점 (j = 0~n)에서 터널 안에 있는 차량의 수를 Sj라고 하자. 이때, Sj의 최댓값을 출력한다. 만약, 터널 안에 있는..

[백준 04084] Viva la Diferencia [Java]

문제 네 개의 양의 정수 a, b, c, d가 있을 때, 아래와 같이 차이를 계산할 수 있다. |a-b| |b-c| |c-d| |d-a| 이렇게 나온 네 개의 수를 이용해서 다시 또 차이를 계산할 수 있다. 이 작업을 모든 네 개의 정수가 같아질 때까지 반복한다. 예를 들어, 1, 3, 5, 9로 시작했을 때를 생각해보자. 1 3 5 9 2 2 4 8 (1) 0 2 4 6 (2) 2 2 2 6 (3) 0 0 4 4 (4) 0 4 0 4 (5) 4 4 4 4 (6) 위의 경우에서 수열은 6번 만에 수렴한다. a, b, c, d가 주어졌을 때, 이 수열이 얼마나 빨리 수렴하는지 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, ..