python3

●○○ [문제] 링크 1. 기둥과 보의 삽입, 삭제 여부와 설치할 위치 정보가 주어진다. 2. 조건에 맞게 삽입, 삭제를 차례로 시뮬레이션할 수 있도록 구현한다. [풀이] 처음 구현한 방법은 기둥, 보를 삽입, 삭제할 때 조건을 확인하고 다 넣어주는 것이었다. 그렇게 했더니 코드가 길어지고 답은 틀리는데 디버깅이 안되서 책보고 다시 짰다. 1. build_frame을 한 줄씩 읽어 기둥인지 보인지, 삽입할 건지 삭제할 건지 확인한다. 2. 삽입이면 append하고 조건에 맞는 설치인지 확인한다. 조건에 맞지 않으면 remove 삭제도 마찬가지로 먼저 remove하고 조건에 맞지 않으면 다시 append 3. 조건에 맞는지 확인하는 코드는 간단하다. [외울 것] * [x, y, 0] in answer : ..
●○○ [문제] 링크 1. 알파벳으로 구성된 문자열이 입력으로 주어진다. 2. 1개 이상의 단위로 문자를 자르고 연속되는 문자열을 압축하여 표현한다. 예) aabbaccc를 1개 단위로 압축했을 때 => 2a2ba3c 3. 이렇게 문자열을 압축했을 때, 압축된 문자열의 최소 길이를 구해라. [풀이] 1. 문자열의 길이를 s라고 했을 때, s/2이상의 크기로 자르는 것은 의미가 없다. 따라서, 문자열을 자르는 크기는 1부터 s/2까지이다. 2. 자르는 단위를 size라고 한다면 연속되는 지 확인할 단어 word = s[:size]로 두고 for문으로 size만큼 더하면서 문자열을 탐색해 나간다. - 만약 다음 문자열이 word와 같으면 연속되므로 count에 1을 더해준다. - 만약 문자열이 연속하지 않으..
●○○ [문제] 링크 1. 현재 점수가 N점일 때, 이를 반으로 나눴을 때 양 쪽 각 자리수의 합이 같으면 럭키 스트레이트 기술을 사용할 수 있다. 예) 123402 => 123 / 402로 나누면 => 각 자리 수 합이 6으로 같다 [풀이] 1. 점수 N을 입력받는다 2. N//2를 기준으로 좌, 우 값을 더하고 비교한다 [외울 것] # 문자열 입력 a = input() # 문자를 int로 b = (int)a[0] [코드] score = input() N = len(score) left = 0 right = 0 for i in range(0, N//2): left += int(score[i]) for i in range(N//2, N): right += int(score[i]) if left == ri..