[Java] 데이터 표준 입출력 방법
·
Language/Java
자바에서 사용하는 대표적인 데이터 입출력 방식을 비교해보려 한다. 표준 입력Java의 대표적인 표준 입력 방식으로는 다음 두 가지이다.Scanner (간단하지만 느림)BufferedReader + StringTokenizer (빠르고 코딩 테스트 필수) 표준 입력 방식 비교구분 Scanner BufferedReader + StringTokenizer 입력 단위토큰 / 라인한 줄(Line) 단위속도느림매우 빠름 (Scanner 대비 10배 이상)사용 난이도매우 쉬움상대적으로 어려움코딩 테스트❌ 비추천✅ 필수내부 처리정규식 기반 파싱단순 문자열 처리 Scanner특징java.util.Scanner 사용내부적으로 정규식을 사용하여 파싱 : 속도가 느림소규모 입력, 학습용, 간단한 프로그램에 적합코딩 테스트에서..
[Python] 데이터 입력 방법
·
Language/Python
파이썬에서 사용하는 대표적인 데이터 입력 방법을 정리하려 한다. 입력 방법 종류입력 방법특징input()가장 쉬운 방법.데이터가 수만 줄 이상이면 시간 초과 가능성이 매우 높음sys.stdin.readline()한 줄씩 읽는 방식.속도가 가장 빠르고 가장 표준적으로 쓰임.sys.stdin.read().split()파일 전체는 한 번에 읽어 단어로 쪼개버림.가장 빠른 방법 input()기본 사용법a = input() 여러 값 입력기본적으로 Python은 모든 데이터를 문자열로 입력 받는다.a, b = input().split() 숫자로 입력Python은 문자열로 입력 받기 때문에 입력 후 데이터 변환이 필요하다.a, b = map(int, input().split()) 리스트 입력arr = list(map..
[C++] 표준 입출력 최적화
·
Language/C++
C++에서 cin, cout은 사용하기 편리하지만, 기본 설정 상태에서는 속도가 느릴 수 있다.특히 코딩 테스트나 대량 입출력 상황에서는 입출력 성능 차이로 시간 초과(TLE)가 발생하기도 한다.이를 해결하기 위해 자주 사용하는 표준 입출력 최적화 코드가 있다. 표준 입출력 최적화 코드#include using namespace std;int main(){ // false와 nullptr 대신 0이라 적어도 ok ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // ... return 0;} ios_base::sync_with_stdio(false);C 표준 입출력(printf, ..
[C++] split() 함수 구현하기
·
Language/C++
C++에서는 Java와 Python과는 다르게 자체적으로 split() 함수가 없다.따라서 우리는 문자열을 특정 문자로 나누기 위해서는 함수를 구현할 필요가 있다. 방법1) sstream 라이브러리 활용하기sstream은 C++에서 문자열(string)을 스트림(stream)처럼 다룰 수 있게 해주는 클래스이다.하지만 stringstream은 편의성을 위해 내부적으로 스트림 객체와 버퍼를 사요하므로 오버헤드가 존재한다.따라서 가독성으로는 아래 코드가 좋지만, 성능 측면에서는 직접 파싱하는 방식이 더 좋다.#include #include #include using namespace std;vector split(string str, char d = ' '){ vector answer; strin..