티스토리 뷰
안녕하세요! 민군입니다. 최근 백준에서 알고리즘문제를 풀다가 굉장히 중요한 사실을 알았습니다.
사실 C언어에서 제공하는 입출력함수, printf(), scanf()에 비해 c++언어의 입출력함수, cout,cin은 실행속도가 느리다는 사실은 알고 있었습니다. 다만, 이런 최적화 방법을 사용하면 cout, cin을 사용해도 실행속도가 이렇게 단축되는구나 라는것을 모르고 있었어요.
그것은 cin, cout사용 시 실행속도를 크게 단축시키는 방법이 있다는 것입니다. 물론 간단하게 printf, scanf를 사용하면 될일이긴 하지만... cin, cout이 계속 사용하고 싶은 분들, 알고리즘문제에 cin,cout를 사용할때 시간단축으로 시간초과의 슬픈 결말, 아픈기억을 경험하기 싫으신 분들은 참고바랍니다!
♣︎cin, cout사용 시 실행속도 단축시키는 방법
때는 DFS문제를 연습삼아 풀고 있는데 갑자기 궁금해지더라구요. 순수하게 cin, cout을 사용하니... 692ms의 속도가 나오길래... 흔히 인터넷에서 나오는 cin,cout 최적화 방법을 사용하면 얼마나 시간이 걸릴지 테스트해봤습니다. 그 결과는 284ms! 절반이 넘게 시간이 단축이 되버린겁니다.(물론 실행시간은 실행할때마다 오차가 있긴 합니다만 큰 차이는 분명합니다.)
그래서 c++언어의 cin, cout을 굳이 사용한다면 이 입출력 최적화 방법은 꼭 사용해야겠구나... 생각하게 되었습죠...
그래서 이번엔 일반 scanf()함수와
printf()함수를 대신 사용해 봤는데 결과는 오히려 cin,cout최적화 결과보다 40ms가량 느렸습니다. 이 결과를 보자마자 cin,cout 최적화코드를 암기해버렸습니다. (절대 안까먹는게 좋을듯...)
cin, cout 코드 최적화 코드는 위와 같습니다. 단 3줄이면 cin,cout을 사용 시 실행속도가 크게 좋아질 것입니다. cin,cout을 쓰는걸 권장은 못하겠습니다만 사용하실거라면 꼭 알아두시면 좋은 cin,cout c++언어 입출력 최적화 코드입니다.
이제 위와 같이 cin함수도 막씁니다... 저는 cin.cout과 printf(), scanf() 모두 입맛따라, 상황에 따라 사용하려구 합니다! ^0^//
오늘은! C++언어 알고리즘풀이 + cin, cout사용 시 실행속도 단축시키는법, 입출력 최적화하는방법이었습니다! 즐코딩 하십시오!!
'알고리즘 정보 > C++ 알고리즘' 카테고리의 다른 글
Softeer, 장애물인식프로그램 DFS 재귀활용 cpp 문제풀이 (0) | 2021.10.26 |
---|---|
백준 BFS 구현 알고리즘, 16236 아기상어, C++ 문제풀이 (0) | 2021.10.22 |
알고리즘 백준, 프로그래머스 문제풀며 실력 상승 중 (0) | 2019.05.22 |
우선순위큐 MaxHeap 프린터 힙 알고리즘문제 풀이 (0) | 2019.05.16 |
라면공장 알고리즘 힙문제풀이, 섬머코딩 후기 (0) | 2019.05.15 |
- Total
- Today
- Yesterday
- 백준swift
- 김프매매
- Collection
- publisher
- SwiftUI
- swift
- 자연어처리
- Swift 알고리즘
- 컬렉션
- swift언어
- 알고리즘문제
- swift문제
- swift 기초
- uikit
- 백준알고리즘
- 프로그래머스swift
- 스위프트
- swift알고리즘
- 알고리즘
- 프로토콜
- swift string
- swift reduce
- Protocol
- CoreML
- swift 문자열
- ios
- createML
- 개발자문서
- 부스트코스
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |