[Python] 1051 - 숫자 정사각형 (실버4)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 2. 아이디어 brute-force(전탐색)으로 해결했었다. 행과 열을 모두 옮겨다니면서 가로와 세로 중에 더 짧은 쪽을 기준(정사각형을 찾아야 하니까)으로 현재 지점(vertex)과 나머지 꼭짓점의 값이 같은 지점을 찾고, 현재 좌표에서 찾은 최대 넓이를 square 리스트에 저장시켜 둔다. 만약 값이 있다고 하더라도 현재 위치에서 찾은 더 큰 값이 있다면 if문에 걸리지 않는다..
[Python] 1018 - 체스판 다시 칠하기 (실버4)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 기억은 안 나지만 당시에 나름 어려웠던 것 같다. 실버 단계가 어려운 이유는 내가 너무 문제를 복잡하게 이해하려 하기 때문이지 싶다. 때론 단순무식한 방법들이 효율적인 해결책이 될 수 있다. 특히 실버 단계에선 대부분 그렇다. 물론 그 중에서 종종 특출난 아이디어를 필요로 하는 함정 문제들이 있긴 하지만 :) 2. 아이디어 어디나 상관없이 새로 칠해야 하는 경우가 가장 작은..
[Python] 2217 - 로프 (실버4)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 2. 아이디어 아주 간단한 수학문제. 로프의 개수 n을 입력받고 각 로프가 버틸 수 있는 최대 중량을 입력받은 후, 오름차순으로 정렬한다. 다만 여기서 주의할 점이 있다. 처음에 가장 작은 값의 로프를 기준으로 로프의 개수 n을 곱해주면 끝날 거라 생각했었는데, 로프를 안 써도 된다는 조건에 의해서 너무나 당연하게 오답 판정이 난다. 예를 들어, [5, 100, 110] ..
[Python] 1316 - 그룹 단어 체커 (실버5)
·
Coding Test/Solution
1. 문제 설명 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 2. 아이디어 알고리즘 공부를 시작하고 처음 풀었던 문제였는데 전혀 어렵지 않은 문제였다. 그런데 아무래도 지금 다시 보니 코드가 깔끔하지 못한 게 눈에 띄어서 너무 거슬린다. 테스트 케이스 n만큼 반복문을 돌려주고, 한 글자면 바로 cnt를 1 증가시키고 종료하고 그게 아니라면 문자열 n번 인덱스와 n+1 인덱스를 비교했을 때 서로 다른 문자인 경..