프로그래밍/백준

[알고리즘] 백준 25629 파이썬 - 홀짝 수열

매 석 2022. 10. 15. 12:51
반응형

 

25629번: 홀짝 수열

길이가 $N$인 수열의 $i(1 \le i \le N)$번째 원소를 정수 $a_i(1\le a_i \le 100)$라고 하자. 동훈이는 이 수열을 잘 정렬해서 홀짝 수열로 만들고 싶다. 어떤 수열이 홀짝 수열이 되려면 다음 조건을 만족해

www.acmicpc.net

 

문제

길이가 N인 수열의 i(1≤i≤N)번째 원소를 정수 ai(1≤ai≤100)라고 하자. 동훈이는 이 수열을 잘 정렬해서 홀짝 수열로 만들고 싶다. 어떤 수열이 홀짝 수열이 되려면 다음 조건을 만족해야 한다.

  1. 수열의 홀수번째 원소는 모두 홀수여야 하고, 순서대로 나열했을 때 감소하지 않아야 한다.a1≤a3≤a5≤a7≤...
  2. 수열의 짝수번째 원소는 모두 짝수여야 하고, 순서대로 나열했을 때 감소하지 않아야 한다.a2≤a4≤a6≤a8≤...

다음과 같은 수열은 홀짝 수열이다. [1,2,1],[3],[5,4] 그러나 다음과 같은 수열은 홀짝 수열이 아니다. [3,2,1],[2,2],[5,4,7,2]

 [3,2,1]의 홀수번째 원소들을 순서대로 나열하면 [3,1]인데, 감소하기 때문에 홀짝 수열이 아니다.

 [2,2]는 첫 번째 원소가 홀수가 아니므로 홀짝 수열이 아니다.

 [5,4,7,2]의 짝수번째 원소들을 순서대로 나열하면 [4,2]인데, 감소하기 때문에 홀짝 수열이 아니다.

길이 N의 수열 a1,a2,…aN이 주어졌을 때, 이 수열을 잘 정렬한다면 홀짝 수열로 만드는 것이 가능할까?

문제풀이

import math
N=int(input())
List=list(map(int,input().split()))
a=0
b=0
for i in range(len(List)):
    if(List[i]%2!=0):
        a+=1
    else:
        b+=1
if(a==math.ceil(N/2) and b==N//2):
    print(1)
else:
    print(0)