컴퓨터공학 💻 도서관📚

구현 유형 문제 . 2 본문

✅🌲강의 복습 노트/이코테2021 알고리즘 훈련

구현 유형 문제 . 2

들판속초록풀 2024. 10. 20. 23:13

 

 

 

n = int(input())
x,y = 1, 1      # 이렇게 초기화하는 것도 가능하구나!
plans = input().split()     # 한 줄에 여러 문자를 입력받기

dx = [0, 0, -1, 1]     # 왼쪽부터 차례대로 L, R, U, D
dy = [-1, 1, 0, 0]
move_types = ['L', 'R', 'U', 'D']


for plan in plans:
    for i in range(len(move_types)):
        if plan == move_types[i]:   # 같은 인덱스 번호로 저장했음을 이용
            nx = x + dx[i]      # 방향벡터
            ny = y + dy[i]

    if nx < 1 or ny < 1 or nx > n or ny > n:    # 영역을 벗어나면 무시
        continue         # x,y에 값 대입 안하고 for문 첫번째로 돌아가기

    x, y = nx, ny    # 계산된 값을 x,y에 저장

print(x, y)

 

 

for + if 연계 디테일


일단 계산을 하고 ,         # 모든 경우에서 수행해야 하는 코드

if로 조건 확인

잘못된 값이면 continue로 돌려보내고 , 올바른 값이면 최종 변수에 저장하기

 

 

 

 

추가 복습 : 2024.10.22 화

n = int(input())
x,y = 1, 1      # 이렇게 초기화하는 것도 가능하구나!
plans = input().split()     # 한 줄에 여러 문자를 입력받기

data = [(0, -1), (0, 1), (-1, 0), (1, 0)]    # 리스트 안에 있는 2차원 튜플
move_types = ['L', 'R', 'U', 'D']


for plan in plans:
    for i in range(len(move_types)):
        if plan == move_types[i]:   # 같은 인덱스 번호로 저장했음을 이용
            nx = x + data[i][0]      # 2차원 배열 활용
            ny = y + data[i][1]

    if nx < 1 or ny < 1 or nx > n or ny > n:    # 영역을 벗어나면 무시
        continue         # x,y에 값 대입 안하고 for문 첫번째로 돌아가기

    x, y = nx, ny    # 계산된 값을 x,y에 저장

print(x, y)

 

2차원을 활용 : 

 

리스트 안에 있는 2차원 튜플

튜플 : 고정값  /   ( )  튜플은 소괄호 사용

'✅🌲강의 복습 노트 > 이코테2021 알고리즘 훈련' 카테고리의 다른 글

구현 유형 문제 . 4  (0) 2024.10.22
구현 유형 문제 . 3  (0) 2024.10.22
구현 유형 설명 . 1  (0) 2024.10.19
그리디 유형 문제 . 4  (0) 2024.10.19
그리디 유형 문제 . 3  (0) 2024.10.18
Comments