이전에 Softeer PYTHON Lv1 연습하다 런타임에러 났던 문제 다시 파헤쳐보기
2024.06.02 - [취준/2. 코딩테스트] - [Softeer] PYTHON 연습문제 풀이 Lv1 나무심기 ~ 주행거리 비교하기
[Softeer] PYTHON 연습문제 풀이 Lv1 나무심기 ~ 주행거리 비교하기
오랜만에 코테 공부를 시작했다. 이번 코테 언어는 자바로 준비하려 했으나.. 자바 인풋 받기부터 실패하여 다시 파이썬으로 돌아왔다😂 짧은 시간 안에 간결한 알고리즘 짜기에는 역시 파이썬
juran-devblog.tistory.com
참고로 이제 Softeer는 쳐다도 안볼꺼임.. 흥이다.. 이제 자바로 코테 공부할거임..........
[7353. 나무심기] https://softeer.ai/practice/7353
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
JAVA로 푼 풀이는 통과
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
ArrayList<Integer> arr = new ArrayList<Integer>();
for(int i=0; i<n; i++){
arr.add(sc.nextInt());
}
int res = 0;
res = ((arr.get(0)*arr.get(1) > arr.get(n-1)*arr.get(n-2)) ? arr.get(0)*arr.get(1) : arr.get(n-1)*arr.get(n-2));
System.out.println(res);
}
}
우선 런타임 에러 났던 PYTHON 코드
import sys
from itertools import permutations, combinations
n = int(input())
arr = map(int, input().split(""))
arr.sort()
answer = max(arr[0] * arr[1], arr[n-1] * arr[n-2])
print(answer)
그때 당시 옛 동기가 문자열을 정수형 배열로 처리하는 부분에서 문제가 있을 것이라는 힌트를 주었고, 해당 부분을 아래와 같이 수정하니
import sys
from itertools import permutations, combinations
n = int(input())
# arr = map(int, input().split(""))
arr = list(map(int, sys.stdin.readline().split()))
arr.sort()
answer = max(arr[0] * arr[1], arr[n-1] * arr[n-2])
print(answer)
놀랍게도 통과 ⭐️
sys.stdin.readline()
input()
vscode 상에는 두 경우 모두 문제없이 돌아가지만 근본적으로 무슨 차이가 있나 확인해보았다. (참고로 채점하는 Python 버전은 3.6)
input()
sys.stdin.readLint()
찾아보니 Softeer 외에 백준 등의 다른 코딩테스트 플랫폼들에서 종종 보이는 이슈라고 한다. 끝!
Python 2.x
input()과 raw_input()으로 나뉜다. raw_input()의 경우 입력값을 무조건 문자로 받는 반면, input()은 입력으로 들어온 값을 판단하여 그 값에 맞는 자료형으로 초기화한다.
<type 'str'>
Python 3.x
raw_input() 함수는 사라지고 input()이 raw_input() 역할을 하게 된다. 따라서 input()은 입력값을 모두 문자열로 받는다. 또한 3.x로 넘어오며 모든 변수가 객체(object) 처리됨에 따라 결과 값도 type에서 class로 바뀌게 되었다.
<class 'str'>
[Python | input보다 sys.stdin.readline의 처리 속도가..] https://green-leaves-tree.tistory.com/12
[Python] input보다 sys.stdin.readline의 처리 속도가 빠른 이유는?
백준의 문제를 Python으로 풀다보면 input() 함수를 사용하는 것보다 sys.stdin.readline()으로 입력을 받으면 처리 시간이 짧아지는 것을 경험하는데요. 그 이유에 대해 생각해보고자 합니다. 먼저 sys 모
green-leaves-tree.tistory.com
[input()과 sys.stdin.readline()의 차이] https://hs-archive.tistory.com/35
input()과 sys.stdin.readline()의 차이
파이썬에서 input()과 sys.stdin.readline()의 차이에 대해 알아보자. 얻어갈 지식 input()과 sys.stdin.readline()의 차이 input() input()이 호출되면 인자로 주어진 문자를 화면에 출력하고 사용자의 입력을 기다
hs-archive.tistory.com
[Python | Input vs. sys.stdin.readline 차이점?] https://buyandpray.tistory.com/7
[Python] Input vs. sys.stdin.readline 차이점?
Python으로 백준 문제를 풀 때 내장 함수 input()으로 입력을 받으면 시간 초과로 오답처리가 되고, sys 모듈의sys.stdin.readline()으로 입력을 받으면 시간 안에 채점이 되는 경우가 자주 발생한다. 왜 그
buyandpray.tistory.com
[Python | 입력 받기 (sys.stdin.readline)] https://herjh0405.tistory.com/50
[Python] 입력 받기 (sys.stdin.readline)
코딩 테스트를 준비하다 보면 input의 경우 런타임 에러가 뜰 때가 있다. 실제로도 이것 때문에 애를 먹었는데, 이 것을 방지해줄 sys 라이브러리의 readline() 문법을 알아보자. 1. 한 개의 정수 입력
herjh0405.tistory.com
[BAEKJOON] 유형별 문제풀이(1) | 그래프 DFS & BFS | JAVA (0) | 2024.08.25 |
---|---|
[SWEA] JAVA | 다시 풀어볼 문제들 기록(1) (feat. 누적합 알고리즘) (0) | 2024.08.16 |
[Softeer] PYTHON | 연습문제 풀이 Lv2(2) 지동 자동 구축 ~ (0) | 2024.06.30 |
[Softeer] PYTHON | 연습문제 풀이 Lv2(1) X marks the Spot ~ 장애물 인식 프로그램 (0) | 2024.06.30 |
[Softeer] PYTHON 연습문제 풀이 Lv1 나무심기 ~ 주행거리 비교하기 (2) | 2024.06.02 |
댓글 영역