티스토리 뷰
코딩 테스트/SW Expert Academy
[SW Expert Academy] 1215. [S/W 문제해결 기본] 3일차 - 회문1 파이썬 정답 코드
leego 2023. 5. 4. 23:541. 문제 내용
2. 접근 방식
입력받은 데이터를 가로(행)을 기준으로 회문 검사를 하고, 그 다음에 세로(열)을 기준으로 회문 검사를 진행하면 된다고 생각했다. 따라서 입력 받은 데이터를 horizontal_data라고 하고, 열을 기준으로 다시 구성한 데이터를 vertical_data라고 한 후 각각 회문 개수를 구하였다.
3. 정답 코드
- init( ) : 입력 처리 함수
- transform_into_vertical( ) : [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]라면 [ [1, 4, 7], [2, 5, 8], [3, 6, 9] ]로 변환하는 함수
- check_palindrome( ) : 회문 검사 함수
- get_count( ) : 리스트 내의 행을 돌면서 회문 개수를 반환하는 함수
def init() :
length = int(input())
data = []
for i in range(8) :
data.append(input())
return length, data
def transform_into_vertical(data) :
temp = []
for c in range(8) :
word = ''
for r in range(8) :
word += data[r][c]
temp.append(word)
return temp
def check_palindrome(word) :
if word == word[::-1] :
return True
return False
def get_count(length, data) :
count = 0
for word in data :
index = 0
while index <= 8 - length :
if check_palindrome(word[ index : index + length ]) :
count += 1
index += 1
return count
for test_case in range(1, 10 + 1):
length, horizontal_data = init()
vertical_data = transform_into_vertical(horizontal_data)
count = get_count(length, horizontal_data)
count += get_count(length, vertical_data)
print(f'#{test_case} {count}')
728x90
'코딩 테스트 > SW Expert Academy' 카테고리의 다른 글
[SW Expert Academy] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 파이썬 정답 코드 (0) | 2023.05.05 |
---|---|
[SW Expert Academy] 1289. 원재의 메모리 복구하기 파이썬 정답 코드 (0) | 2023.05.05 |
[SW Expert Academy] 1926. 간단한 369게임 파이썬 정답 코드 (2) | 2023.05.04 |
[SW Expert Academy] 1288. 새로운 불면증 치료법 파이썬 정답 코드 (0) | 2023.05.04 |
[SW Expert Academy] 1983. 조교의 성적 매기기 파이썬 정답 코드 (0) | 2023.05.04 |