일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IT
- The Balance of the World
- 브런치
- c
- LJESNJAK
- 10773
- 1874
- 시스템 프로그래밍
- Process Communication
- 시프
- Zero That Out
- File 조작
- BAKA
- 입력 버퍼
- QA
- 2941
- 4949
- c++
- Parenthesis
- 5622
- For Beginners
- 바샤
- file IO
- 해바
- process control
- 균형잡힌 세상
- Baekjoon
- 백준
- 전자책
- system programming
- Today
- Total
목록c++ (29)
해바
결론부터 말하자면 C의 입출력 함수들은 C++의 입출력 함수들보다 빠르다. getchar > scanf > std::cin 백준 온라인 저지의 속도 비교 자료 입력속도 비교 출력속도 비교 중간에 C++이 끼어있는 것에 대해선 여기를 읽어보면 되고, 더 자세한 것은 sync with stdio 로 구글링하면 나온다. 이걸 적용한 것이든 하지 않은 것이든 C++ 입출력 함수의 문제는 여기에서 설명하듯, C의 I/O method보다 느린 속도 멀티쓰레드 사용 불가 scanf, printf 등 C 입출력 함수와의 혼용시 문제 발생 가능성 엄밀히 따지면 일종의 편법인 방식 등이 있다. 그러니까 불편하고 cin >> 하고 입력하는 것에 비해 %d, %c, %lf ... 까다롭게 느껴지더라도 C 스타일에 적응하자. ..
문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 처음 실행했을 때 또는 처음 입력하는 단어의 경우 이상하게 세는 경우가 있었지만, 코드만 봐선 이상이 없어 보여 대수롭지 않게 넘겼다. 이게 굉장히 잘못된 판단이었다. 원래는 scanf(..
문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, www.acmicpc.net 풀이 이전 문제들처럼 배열을 쓰지 않고 해 보려고 고집을 부려서 삽질을 정말 많이 했다. 일일이 조건을 만들다가, c, d..
문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. www.acmicpc.net 풀이 else if 란에 양쪽 다 범위를 정해주지 않으면 '\n' 과 같은 것들이 str
문제 https://www.acmicpc.net/problem/2908 2908번: 상수 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734과 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 www.acmicpc.net 풀이 #include "cstdio" // num % 10 : 1의자리 // (num / 10) % 10 : 10의자리 // num /..
문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net 풀이 4번이나 틀렸던 문제. '이제 더 이상 예외인 게 없을 텐데?' 하고 분노를 가졌을 때마다 예외가 발생하는 것들이 존재했다. 테스트 케이스에서 확인해야할 것들은 총 4가지로, 문자열 맨 앞에 공백이 있을 때 (ex. ' Luis Suarez') -> 2 문자열 맨 뒤에 공백이 있을 때 (ex. 'Luis Suarez ') -> 2 문자열..
문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이 이번 문제도 이전 문제들처럼 아스키코드를 활용하는 문제였다. 이번 파트 문제를 다 풀 때쯤엔 아스키코드표 채로 머릿속에 저장될 듯! #include "cstdio" #include "ctype.h" int maxAlp(int* arr) { int max(0); for(int i(1); i max) { max = arr[i]; arr[0] = i + 64;// 최대빈도의 문자를..
문제 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 www.acmicpc.net 풀이 이차원 벡터 사용법 #include "cstdio" #include "vector" int main() { int count..