wonpick
devvon
wonpick
방문자🌱
오늘
어제
  • 분류 전체보기 (146)
    • 개발 (42)
      • Spark (7)
      • Hadoop (3)
      • ML&DL (4)
      • Paper Review (0)
      • ETC (24)
    • STUDY (77)
      • Data Engineering (54)
      • Cloud (4)
      • Algorithm (5)
      • SQL (10)
      • Toy Project (1)
    • Android (2)
    • Backend (14)
    • 인턴 (0)
    • 공모전 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • Python
  • cka
  • kodekloud
  • 인턴강연
  • 쿠버네티스
  • 최신 데이터 인프라 이해하기
  • 데이터엔지니어링
  • SQL
  • 자연어처리
  • 최신 데이터 인프라 이해하기 #7

최근 댓글

최근 글

티스토리

Designed By.hELLO
wonpick

devvon

STUDY/Algorithm

[python] sw expert academy

2021. 5. 10. 12:34

1. 2072. 홀수만 더하기

T = int(input())
for i in range (T):
    number = list(map(int, input().split()))
    odd_num = [num for num in number if num % 2 == 1]
    print("#{} {}".format(i+1,sum(odd_num)))

2. 2070. 큰 놈, 작은 놈, 같은 놈

T = int(input())
for i in range (T):
    a,b = map(int, input().split())
    if a == b:
        print("#{} {}".format(i+1,"="))
    elif a > b:
         print("#{} {}".format(i+1,">"))
    else:
         print("#{} {}".format(i+1,"<"))    

3. 2056. 연월일 달력

T = int(input()) 
for i in range(T): 
    numbers = input()
    date=int(numbers[6:])
    month=int(numbers[4:6])
    year=int(numbers[0:4])
    if month <1 or month>12:
        print('#{} {}'.format(i+1,-1))
        continue

    if month in [1,3,5,7,8,10,12]:
        if  date <1 or  date>31:
            print('#{} {}'.format(i+1,-1))
            continue
    if month ==2:
        if  date<1 or  date>28:
            print('#{} {}'.format(i+1,-1))
            continue

    if month in [4,6,9,11]:
        if  date <1 or  date>30:
            print('#{} {}'.format(i+1,-1))
            continue
    print("#%d %04d/%02d/%02d" %(i+1,year,month, date))

4. 1986. 지그재그 숫자

n = int(input())
for i in range (n):
    k = 0
    a = int(input())
    for p in range (a):
        if (p+1)%2 == 0:
            t=(p+1)*-1
        else:
            t=(p+1)
        k =k+t
    print(f"#{i+1} {k}")

2번째 방법

a = int(input())
for i in range (1,a+1):
    n = int(input())
    b=0
    for nn in range (1,n+1):
        if nn%2==1:
            b+=nn
        else:
            b-=nn
    print('#{} {}'.format(i, b))

2021.파리퇴치

사각형의 크기를 b라고하고, 파리채의 크기를 c라고 했을 때
테스트 할 수 있는 횟수는 가로(b-c+1), 세로(b-c+1)이다.

a = int(input())
for num in range (1,a+1):
    b,c = map(int,input().split())
    arr = [list(map(int,input().split())) for _ in range(b)]
    max = 0
    for i in range (b-c+1):
        for j in range(b-c+1):
            current = 0
            for k in range (c):
                for m in  range (c):
                    current +=arr[i+k][j+m]
                if current>max:
                    max = current
    print("#{} {}".format(num,max))

1859. 백만장자 되기 프로젝트백만장자 되기 프로젝트


처음에는 생각을 리스트로 만들어서 max값의 index를 구한 뒤 그 index값보다 작은 index 값을 가지고 있는 애들을 찾아 연산을 하면된다고 생각했다.
그런데 그 이후에 1, 1, 3, 1, 2의 경우와 같이 제일 큰값 뒤에 전날보다 큰값이 생기게 되면 오류가 난다는 것을 알 수 있었다. 그래서 max값의 index를 제외하고 다시 리스트를 만들어서 하려고 했는데 코드가 너무 복잡해져 아래와 같이 리스트를 뒤집어서 하는걸 참고해서 해결... 😨

a = int(input())
for i in range(1,a+1):
    b = int(input())
    w = list(map(int,input().split()))
    w=w[::-1]
    m=w[0]
    result=0
    for j in range(len(w)):
        if m>w[j]:
            result+= m -w[j]
        else:
            m=w[j]

    print("#{} {}".format(i,result))

 잘못된 코드
#a = int(input())
# for i in range(1,a+1):
#     b = int(input())
#     w = list(map(int,input().split()))
#     index  = w.index(max(w))
#     result = 0
#     for j in range(b):
#         if (w.index(w[j]))<index:
#             result+=max(w)-w[j]
#     print("#{} {}".format(i,result))

'STUDY > Algorithm' 카테고리의 다른 글

코드트리 사용 후기: 다시 만난 코드트리 (작년과 어떤 점이 달라졌을까?)  (1) 2025.02.09
[python] - 같은 숫자는 싫어(lv.1)  (0) 2024.05.03
[python] BFS,DFS  (0) 2021.05.10
[python]코드업 - 기초 100제  (0) 2021.05.09
    wonpick
    wonpick

    티스토리툴바