백준 10871번:파이썬

태훈입니다·2022년 11월 22일
0

코테 풀이

목록 보기
12/34

정답 코드:

N,X = map(int,input().split())
A = [int(x) for x in input().split()] 

for i in A:
    if i < X:
        print(i,end=" ")
       

코드 풀이:

       N개의 정수와 정해지는 수 X를 입력 받고,
       A 배열을 입력 받는다.
       for 문을 통해 A배열을 반복해서, 
       if 문 조건인 i < X 일 때의
       i를 print해주면 값을 얻을 수 있다!
       이 때 end=" "를 써주는 이유는
       1
       4
       2
       3
       이런 식으로 출력되는 print(a[i]) 를 
       1 4 2 3 이런 식으로 문제 예제 정답처럼 프린트 해주는 방법이기 때문이다!
       비슷한 예로는 print(a,b,c,d,sep=" ") 가 있는데 이건 , 를 띄어쓰기로 대체해주기에
       a b c d 로 출력된다!
       

===== 효율적인 코드 =====

a,b = map(int,input().split())
score = [x for x in input().split() if int(x)<b]
print(' '.join(score))

문제 해답들을 보면서 좀 더 효율적이고, 좋아보이는 코드들을 추가해서
공부해보려고 한다.
위 코드는 내가 짠 코드보다 훨씬 단순하면서, join이라는 배열을 문자열로 바꿔주는
실질적인 기능을 담고있어서, 활용하면 좋을 것 같다!
풀이하자면 a,b 를 담는 건 똑같고
score라는 배열을 만들어서 , [x for x in inpu().split() 조건]
조건에 해당하는 값들만 배열에 입력 받고,
print(' '.join(score)) 로 출력하는데,
'구분자'.join(score)) 는 score 배열을 구분자로 출력하는 기능으로,
'-'.join(arr) 시 위 문제에선 1-4-2-3 으로 출력된다, 공백을 넣어 주면서
문제에서 원하는 답인 1 4 2 3 을 출력할 수 있다.

profile
개발 공부를 하고 있는 비전공자입니다!

0개의 댓글