목록분류 전체보기 (447)
For Programmer
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWOUfCJ6qVMDFAWg SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제의 풀이법은 3가지가 있다. 첫번째는 이 문제가 요구하는 방식이다. 우선 내림차순으로 점수들을 정렬한다음 K개를 뽑으면 된다. 그러면 가장 큰 점수이다. 그러나 이러한 문제는 기본적으로 재귀로도 풀 수 있다. N개중 K를 뽑는 문제이기 때문이다. 하지만 위 문제에서 재귀로 풀면 시간초과가 발생한다. 또한 itertools.permutations 로도 풀 수 있다. 파이썬 조합라이브러리이다. ..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pq-OKAVYDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이문제는 회전시킨 행렬들을 무지성 반복문을 돌아 구하 거나 혹은 zip함수를 쓰면 쉽게 구할 수 있다. 1. zip풀이 def solution(order, array): result = [] # 회전시킨 행렬들을 담을 리스트 temp_list_90 = list(map(list, zip(*array[::-1]))) result.append(temp_list_90) temp_list2_180 = lis..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Psz16AYEDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 간단한 구현문제이다. 2가지를 나눠서(3x3 구하는 부분, 가로 세로줄 구하는 부분) 반복문을 짜도 되고 한번의 반복문안에 위의 경우를 다 구할 수 있다. 1. 2가지를 나눠서 구하는 경우 T = int(input()) def solution(order): # 작은 사각형 3 x 3 검사 for i in range(0, 9, 3): for j in range(0, 9, 3): check_square..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18LoAqItcCFAZN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 4중반복문으로 풀었다. 대신 중간에 탈출 조건을 두어 완벽히 n^4 만큼 돌지는 않도록 하였다. 우선 이중 리스트의 모든 인덱스를 시작지점으로 설정한다. 그리고 만약 해당 인덱스의 값이 0이 아니라면 오른쪽으로 우선 이동하면서 체킹한다. 만약 0을 만난다면 행을 한칸 이동하여 또 찾아나간다. 그러면서 행의 개수와 열의 개수를 세어나간다. T = int(input()) for order i..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14hwZqABsCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 약간 생각해야될 문제이다. 우선 2차원 리스트를 세로로 돌면서(행으로) 1 혹은 2인 것만 리스트에 새로 담았다. 그 후 양쪽 끝에서 안쪽으로 오면서 1, 2 있는것들을(즉, 테이블 밖으로 빠지는 것들은) 0으로 지워주었고 그 후 다시 리스트를 돌면서 교착상태의 개수를 구했다. for order in range(1, 10 + 1): length = int(input()) array = [..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14BgD6AEECFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제도 1210 문제와 유사하다. 반복문을 돌면서 거리를 세어주고 계속해서 최소거리인지 검사해주고 그 거리가 최소 거리라면 그에 해당하는 출발 열번호를 저장해놓고 마지막에 출력하면 된다. for _ in range(1, 10 + 1): order = int(input()) data = [] for _ in range(100): data.append(list(map(int, input().spli..
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제도 간단한 구현 문제이다. 단, 한가지 생각해야하는점은 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 1을 만나 이동할때 과연 다시 반대쪽으로 가지 않도록 어떻게 구현할 것인지 고민을 해야한다. 나는 체킹변수 2개를 따로 두어 만약 왼쪽에서 오른쪽으로 이동하고 있다면 변수의 값(left_to_right)을 True로 (right_to_left)를 False 로 변경하여 체킹하는 식으로 했다. for _ in range(1, 10 + 1): ord..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV13_BWKACUCFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 간단한 구현 문제이다. SWEA문제는 입력 처리하기가 너무 힘들다;; (데이터 10000개를 텍스트에 주니깐....) 어쨋든 이문제는 반복문 2번안에 모든 경로(가로,세로,대각선2개) 합을 모두 구해서 마지막에 가장큰 값만 출력해주는 문제이다. for _ in range(1, 10 + 1): order = int(input()) array = [] for _ in range(100): array.a..