토토백_뒤집기(15738)

Eugenius1st·2023년 3월 11일
0

Algorithm_Baekjoon

목록 보기
151/158
post-thumbnail

토토백(토요일 토요일은 백준)

문제

풀이

  • 수학적으로 계산
  • 현재 들어온 연산이 + 인지 - 인지에 따라 다른 경우
  • 전체 배열의 길이가 홀수이고, 딱 정중앙에 있을 경우 연산 안함
  1. 들어온 연산값이 > 0 인경우 and 뒤집히는 범위안에 있는 경우
  2. 들어온 연산값이 < 0 인 경우 and 뒤집히는 범위안에 있는 경우

코드

# A 크기 K 위치 M 연산의 개수 / 배열 / 연산들(+1 된 상태)
A, K, M = map(int, input().split())
arr = list(map(int,input().split()))
currentPos = K
# print(currentPos)
for i in range(M):
    calculate = int(input())
    if calculate > 0 and currentPos <= calculate:
        currentPos = abs(currentPos - (calculate + 1))
        # print("here1", currentPos)
    elif calculate < 0 and currentPos > calculate+A:
        currentPos = abs(A - currentPos + 1 + (A+calculate))
        # print("here2",currentPos)
    else:
        # print("here4", currentPos)
        continue
print(currentPos)

느낀점

  • 솔직히 힌트는 오빠가 줘서 내가 푼게 아니지만,
    아 이런 문제는 배열로 slice 하는게 아니구나, 다시 한번 알게 되었다..
profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글