SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 내용 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] ]로 변환..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 내용 2. 접근 방식 현재 수의 각 숫자(digit)이 3, 6, 9를 포함하고 있는지 확인한다. 이때 각 digit를 뽑아내기 위해 현재 수를 문자열로 변환한 후 for문을 돌린다. 3. 정답 코드 n = int(input()) claps = [ '3', '6', '9' ] for i in range(1, n + 1) : temp = '' for digit in str(i) : if digit in claps : temp += '-' if not temp : print(i, end=' ') else : print(temp, end=' ') print()
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 내용 2. 접근 방식 현재까지 본 숫자는 중복이 제거된 0 ~ 9 사이의 값이다. 따라서 집합(set)를 사용하여 지금까지 숫자를 담아야겠다고 판단했다. 집합은 중복을 허용하지 않으므로 만약 집합의 길이가 10이 된다면 이는 곧 0 ~ 9까지의 모든 숫자가 담겼다는 의미이다. 3. 정답 코드 update( ) : 집합에 여러 값을 추가한다 T = int(input()) for test_case in range(1, T + 1): n = int(input()) numbers = set() nx, count = n, 1 while True : temp = ..
SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 내용 2. 접근 방식 각 총점을 구한 후, k번째 학생의 총점을 저장한다. 그 총점을 내림차순 정렬한 후, k번째 학생의 점수 순위를 저장한다. 각 평점에 속할 수 있는 순위의 경계값을 구한 후, k번째 학생이 몇 번째 경계값에 속하는지 구한다. k번째 학생이 속한 경계값이 곧 k번째 학생의 평점이다. 뭔가 더 깔끔하고 명확한 코드를 작성할 수 있을 듯한데, 아쉽다. 나중에 다시 보면 번뜩 또 다른 아이디어가 떠오르길 기대한다. 3. 정답 코드 def make_list_with_total(n) : data = [] for i in range(1, n +..