백준

    백준 14500번 - 테트로미노(C++)

    백준 14500번 - 테트로미노(C++)

    문제 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 설명 엄청난 노가다 문제다. 위 4개의 테트로미노 모양으로 숫자를 묶었을 때 가장 큰 수를 출력해야 하는데, 문제는 테트로미노를 회전하고 대칭시켜도 된다는 것이다. 그래서 총 2(하늘) + 1(노랑) + 4(분홍) + 4(초록) + 8(주황) = 19개의 경우의 수가 있는데 이걸 하나하나 계산하고 싶지는 않았다. 그래서 짱돌같은 내 머리를 열심히 굴려 좀 더 예쁜 코드를 짰다. 하늘색 경우의..

    백준 2812번 - 크게 만들기(Swift)

    문제 www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 설명 n과 k를 입력받은 다음 들어오는 N자리 숫자는 Int로 저장하지 않고 인덱스를 통해 숫자 하나하나에 접근하기 위해 Character 배열로 저장한다. 숫자의 왼편부터 제일 오른편 숫자까지 하나씩 검사하며 지금 스택의 top에 있는 숫자와 비교한다. top보다 지금 검사하고 있는 수가 더 크다면 스택에서 top을 pop한 후에 지금 검사하고 있는 수를 집어넣고 k를 1만큼 감소시킨다. 모든 루프를 마친 후 stack의 0번째부터 stack.count - k - 1번째 인덱스에 ..