Algorithm

    [Baekjoon] 10989번 : 수 정렬하기3

    10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 풀이 단계별로 풀어보기 - 정렬 단계엔 총 3개의 수 정렬하기 문제가 포함되어 있다. 다른 문제들은 아래와 같이 해서 제출하면 시간이나 메모리를 초과하지 않았으나 이번 문제에선 메모리 제한이 8MB로 되어있고, 입력되는 개수의 범위가 매우 커서(

    [Baekjoon] 1436번 : 영화감독 숌

    1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제 풀이 연속된 6의 개수를 세고 3개 이상이면 count 한다. count가 주어진 n번째 수가 되면 반복문을 멈추고 프린트한다. 코드 n = int(input()) count, num = 0, 0 while count != n: num += 1 count_6 = 0 for i in str(num): if i != '6': count_6 = 0 else: count_6 += 1 if count_6 >= 3: count += 1 break print(num)..

    [Baekjoon] 1018번 : 체스판 다시 칠하기

    1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 풀이 올바르게 칠해진 체스판(흰색 시작, 검은색 시작)을 기준으로 for문으로 반복하면서 8x8로 틀린 지점(고쳐야 할 지점)의 위치를 세어 출력하는 함수를 만든다. 모든 가능한 시작 지점에 대해 확인하고 최소값을 출력한다. 코드 n, m = map(int, input().split()) board = [] def check_board(board, start_x, start_y): count_white, count_black = 0, 0 board_..

    [Baekjoon] 2447번 : 별 찍기 - 10 / 11729번 : 하노이의 탑

    # 별 찍기 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 문제에서 주어진 사이즈, 패턴과 일치하도록 별을 출력하면 되는 문제이다. 주어진 사이즈의 세로를 1/3로 나누어 한 줄씩 재귀적으로 패턴을 채워준다. import sys def pattern(size): # 사이즈가 1이 되면 *만 추가 if size == 1: return ['*'] # 전체 사이즈의 1/3씩 패턴을 만들기 위해 작은 사이즈에서 만든 패턴을 재귀적으로 호출 patterns = pattern(size//3)..