본문 바로가기
알고리즘/SWEA

[SWEA]230112 문제풀이

by stubborngastropod 2023. 1. 12.
728x90

1204. 최빈수 구하기

T = int(input())
for i in range(T):
    t_num = int(input())
    t_case = list(input().split())
    countnum = 0
    num = 0

    for k in range(1000):
        if t_case.count(t_case[k]) >= countnum:
            countnum = t_case.count(t_case[k])
            num = t_case[k]

    print(f'#{t_num} {num}')

변수를 재선언해 최빈수 중  최댓값을 구하는 방식

계속 알고리즘을 헷갈려 런타임 오류가 난다

 

1209. sum

for i in range(10):
    t_num = int(input())
    t_case = []

    for j in range(100):
        t = list(map(int, input().split()))
        t_case.append(t)
    sumlist = []

    for k in t_case:
        linesum = sum(k)
        sumlist.append(linesum)

    for l in range(100):
        rowsum = 0
        for m in range(100):
            rowsum += t_case[m][l]
        sumlist.append(rowsum)

    for n in range(100):
        essum = 0
        essum += t_case[n][n]
    sumlist.append(essum)
    
    for o in range(100):
        wssum = 0
        wssum += t_case[o][99-o]
    sumlist.append(wssum)

    msum = max(sumlist)

    print(f'#{t_num} {msum}')

sumlist에 행, 열, 대각 합을 모두 집어넣어 최대값을 구하는 방식으로 해결

 

1959. 두 개의 숫자열

T = int(input())

for i in range(T):
    N, M = map(int, input().split())
    ai = list(map(int, input().split()))
    bj = list(map(int, input().split()))
    sumlist = []
    
    if N > M:
        short_list, long_list = bj, ai
    elif N < M:
        short_list, long_list = ai, bj
    else:
        short_list, long_list = ai, bj

    for j in range(len(long_list)-len(short_list)+1):
        multilist = []
        for k in range(len(short_list)):
            multiple = short_list[k]*long_list[k+j]
            multilist.append(multiple)
        sumlist.append(sum(multilist))

    print(f'#{i+1} {max(sumlist)}')

input 값에서 N, M 값을 받았는데 if문에서 깔끔하게 활용할 방법을 모르겠다

 

1961. 숫자 회전

T = int(input())

for i in range(T):
    t_num = int(input())
    t_case = []
    for j in range(t_num):
        t = list(map(str, input().split()))
        t_case.append(t)

    print(f'#{i+1}')
    
    for k in range(t_num):    
        for l in range(t_num):
            print(t_case[t_num-1-l][k], end = '')
        print('', end = ' ')
        for m in range(t_num):
            print(t_case[t_num-1-k][t_num-m-1], end = '')
        print('', end = ' ')
        for n in range(t_num):
            print(t_case[n][t_num-1-k], end = '')
        print('')

이중 for문에서 반복 범위 헷갈리지 않도록...

728x90

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA]230208 문제풀이  (0) 2023.02.08
[SWEA]230207 문제풀이  (0) 2023.02.07
[SWEA]230201 문제풀이  (0) 2023.02.01
[SWEA]230109 문제풀이  (0) 2023.01.09
[SWEA]230103 문제풀이  (1) 2023.01.03

댓글