ALGORITHM/PYTHON

백준 BAEKJOON 24049번 정원 (Easy) [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 24049번 정원 (Easy) [PYTHON/파이썬]


<문제 출처>

https://www.acmicpc.net/problem/24049

 

24049번: 정원 (Easy)

첫번째 줄에는 정원의 세로 길이 $N$ 과 가로 길이 $M$ 이 주어진다. ($1 \le N, M \le 1,000$) 두번째 줄에는 정원의 왼쪽 가장자리에 피어 있는 꽃 $N$ 개의 정보가 공백을 사이에 두고 주어진다. $i$번

www.acmicpc.net

백준 24049번

 

<풀이>

노란색 꽃 = 0, 빨간색 꽃 = 1

 

 

세로 N, 가로 M 크기의 정원

 

 

문제에 나온 예시를 그대로 구현해봤다.

①번 부터 ⑨번까지 순서대로 구해주면 된다.

왼쪽에 적힌 숫자들은 N, 위쪽에 적힌 숫자들은 M이다

 

두 꽃의 색이 같다면 노란색 꽃, 다르다면 빨간색 꽃을 심으니

N의 0번째 인덱스 값과 M의 0번째 인덱스 값을 비교하여 ①번을 구한다.

그 다음은 ①번 값과 M의 1번째 인덱스 값을 비교하여 ②번을 구한다.

그 다음은 ②번 값과 M의 2번째 인덱스 값을 비교하여 ③번을 구한다.

 

이렇게 구해진 ①, ②, ③ 값을 M 리스트에 저장하여 초기화한다.

다시 N의 1번째 인덱스 값과 M의 0번째 인덱스 값을 비교하여 ④번을 구한다.

그 다음은번 값과 M의 1번째 인덱스 값을 비교하여 ⑤번을 구한다.

그 다음은번 값과 M의 2번째 인덱스 값을 비교하여 ⑥번을 구한다.

(이하 생략...)

 

이러한 작업을 반복하여 마지막으로 ⑨번 위치의 값을 출력해주면 된다.

 

<코드>

N, M = map(int, input().split())
N_lst = list(map(int, input().split()))
M_lst = list(map(int, input().split()))

for i in range(N) :
    tmp = []
    x = N_lst[i]
    for j in range(M) :
        if x == M_lst[j] :	# 같으면
            x = 0	# 노란색 꽃
            tmp.append(x)
        else :	# 다르면
            x = 1	# 빨간색 꽃
            tmp.append(x)     
    M_lst = tmp	# tmp에 저장된 값을 M에 저장

print(M_lst[-1])	# 맨 마지막에 심어진 꽃의 색을 출력
반응형