아 이 문제 왜 안 풀리냐 정말 나는 빠가인건가!?
😰😰😰😰😰😰😰😰😰
< 백준 10871 >
일단 처음 짠 코드는 아래와 같다.
1 2 3 4 5 6 7 8 9 10 11 | n, x = input().split(' ') N = int(n) X = int(x) A = [] for i in range(N): A.append(int(input())) for j in A : if j >= X : A.remove(j) print(A) |
주피터 노트북에서 실행했을 때 제대로된 값을 출력하지만, 백준 사이트에서 제출하면 런타임 에러가 뜬다.
map( )과 filter( )를 써서 아래와 같은 다른 코드를 짰지만 또 다시 런타임 에러다. 역시 출력은 제대로 되는데 오답이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | n, x = input().split(' ') N = int(n) X = int(x) A = [] for i in range(N): A.append(int(input())) def test(j): if j < X : return j result = list(map(test, A)) last_result = list(filter(None, result)) last_result |
14번 행은 리스트 안에서 None 값인 항목을 제거해준 것이다.
왜 정답이 아닌 것이냐 정말 참내
젠장 -
낙심한 마음을 안고 그냥 구글에서 정답 코드를 찾았다.
다음은 '츄르 사려고 코딩하는 집사'님이 작성한 코드다.
1 2 3 4 5 6 | N, X = map(int, input().split()) A = list(map(int, input().split())) for i in range(N): if A[i] < X: print(A[i], end =" ") |
내 코드와 비교했을 때 알 수 있는 점
1) 인풋 값 두 개를 받을 때 꼭
.split(' ') |
안 해줘도 되는구나
2) map( ) 함수로 세 줄 짜리 코드를 한 줄로 줄일 수 있구나.
< 백준 10817 > ✅
문제 : 세 정수 A, B, C가 주어진다. 이때 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
처음 짠 코드는 다음과 같았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | A, B, C = map(int, input().split()) list = [A, B, C] if A <= B <= C : print(B) elif C <= B <= A : print(B) elif B <= A <= C : print(A) elif C <= A <= B : print(A) elif A <= C <= B : print(C) elif B <= C <= A : print(C) |
제대로 돌아가긴 하지만 간단한 문제 푸는데 너무 코드를 낭비한 것 같아서 짧은 코드로 다시 짰다.
1 2 3 4 | A, B, C = map(int, input().split()) list = [A, B, C] a = sorted(list) print(a[1]) |
15줄 --> 4줄
0 Comments
Post a Comment