본문 바로가기

알고리즘/SWEA9

[swea][파이썬] 13635 .특별한 정렬 리스트를 5번 반복하면서 최대값을 pop 하고 최소값을 pop하며 출력하는 방식으로 풀이하였다. import sys sys.stdin = open('input.txt') testNum = int(input()) for test in range(1, testNum+1): N = int(input()) lst = list(map(int, input().split())) print(f'#{test}', end=' ') for i in range(5): tmpMax = lst[0] maxIdx = 0 for idx, num in enumerate(lst): if num > tmpMax: tmpMax = num maxIdx = idx print(lst.pop(maxIdx), end=' ') tmpMin = lst.. 2022. 8. 22.
[swea][파이썬] 1954 .달팽이 숫자 한번에 이렇게 이동하면서 숫자를 채우는 방법으로 풀었다. 이동거리는 4*4배열은 4 3 3 2 2 1 1 이렇게 되고 5*5배열은 5 4 4 3 3 2 2 1 1 이렇게 된다. 위의 규칙에 따라 N은 짝수번째 이동에서 -1된다. 안쪽으로 한겹씩 줄어드는 것은 cnt 변수를 만들어 조절 하였다. import sys sys.stdin = open('input.txt') testNum = int(input()) for test in range(1, testNum+1): N = int(input()) #N은 2번 이동할때 마다 1을 줄일 것이고 listLen = N # 전체리스트 길이를 저장해두는는 listLen 변수 lst= [[0]*N for _ in range(N)] #N*N 배열을 0으로 초기화한다. #.. 2022. 8. 22.
[swea][파이썬] 1209 .[S/W 문제해결 기본] 2일차 - Sum 단순하게 가로행 전부 구하면서 최대값을 비교하며 변수에 저장하고 마찬가지로 세로행, 우하향 대각선, 좌하향 대각선까지 비교하면서 최대값을 찾았다. import sys sys.stdin = open('sum_input.txt') for test in range(10): N = int(input()) lst = [list(map(int, input().split())) for i in range(100)] #최대값을 확인할 변수 생성 myMax= 0 tempMax =0 # 가로값 구하고 최대값과 비교하기 값 100개 for i in range(100): for j in range(100): tempMax += lst[i][j] if tempMax > myMax: myMax = tempMax tempMax=0.. 2022. 8. 22.
[swea][파이썬] 13627 .전기버스 최대 이동거리 부터 탐색하고 -1하면서 충전 정류장을 찾는 방법으로 풀이 하였다. import sys sys.stdin = open('input.txt') def staNum(K,N,lst): cnt = 0 #충전횟수를 카운트 할 변수 nowLoc = 0 #현재 위치를 저장할 변수 while nowLoc + K < N : # nowLoc 현재위치 + K 이동가능거리가 N 종점을 넘으면 while 종료 for k in range(K, 0, -1): #최대 이동거리 부터 역순으로 이동거리안에 충전소가 여러개일 경우 #가장 먼 충전소로 바로 이동하기 위함. if nowLoc+k in lst: #이동 가능 거리에서 충전소가 있으면 nowLoc += k #현재위치를 이동가능거리만큼 옮기고 cnt += 1 #충전 .. 2022. 8. 22.