분류 전체보기 541

함수 오버로딩과 디폴트 매개변수가 만드는 모호성

함수 오버로딩(Function Overloading) 함수 다중 정의라고도 하며 아래 조건을 만족시킬 때 함수가 오버로딩 되었다고 말한다. 1. 함수명은 동일해야 하며 반환형은 동일해도 되고 동일하지 않아도 된다.2. 매개 변수의 수가 다를 때3. 매개 변수의 수는 같은데 자료형이 다를 때 ex)void Foo(int a);void Foo(int a, int b); 디폴트 매개 변수(Default Parameter)함수의 매개 변수 값을 미리 지정해두는 방법으로, 선언 시점에 이를 작성한다. 함수를 호출할 때 실인수는 좌에서 우로 적용되기 때문에 디폴트 매개 변수는 오른쪽에서 왼쪽 방향으로 지정해야 한다. ex)void foo(int a, int b=10);foo(2); // a=2, b=10foo(3,..

백준] 2512 - 예산(KOI 2012;한국정보올림피아드 2012)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 100,000 이하이다. 그 다음 줄에는 총 예산을 나타내는 정수 M이 주어진다. M은 N 이상 1,000,000,000 이하이다. 출력첫째 줄에는 배정된 예산들 중 최대값인 정수를 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[10001], max = 0, n, limit; cin >> n; for (int i = 0; i > arr[i]; if (ar..

백준] 14470 - 전자레인지(JOI 2017 예선)

시간 제한 : 2초메모리 제한 : 512MB 입력입력은 총 5줄로, 한 줄에 한 개씩의 정수가 주어진다.첫 줄에는 원래의 고기의 온도 A가 주어진다. 단, A는 -100 이상 100 이하이며, 0이 아니다.둘째 줄에는 목표 온도 B가 주어진다. 단, B는 1 이상 100 이하이며, A보다 크다.셋째 줄에는 얼어 있는 고기를 1℃ 데우는 데 걸리는 시간 C가 주어진다.넷째 줄에는 얼어 있는 고기를 해동하는 데 걸리는 시간 D가 주어진다.다섯째 줄에는 얼어 있지 않은 고기를 1℃ 데우는 데 걸리는 시간 E가 주어진다.C, D, E는 모두 1 이상 100 이하이다. 출력고기를 B℃로 데우는 데 걸리는 시간을 초 단위로 한 줄에 출력하라. 소스코드 Tip

백준] 1138 - 한 줄로 서기

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i-1보다 작거나 같다. 출력첫째 줄에 줄을 선 순서대로 키를 출력한다. 소스코드 #include using namespace std; int main(void) { int n; int arr[10], ans[11] = { 0, }; cin >> n; for (int i = 0; i > arr[i]; ans[arr[0] + 1] = 1; for (int i = 1; i < n; i++) { int cnt = 0; fo..

백준] 1812 - 사탕

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 N(3≤N≤999, N은 홀수)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 1번 학생과 2번 학생이 가지고 있는 사탕의 수의 합, 2번 학생과 3번 학생이 가지고 있는 사탕의 수의 합, …, N-1번 학생과 N번 학생이 가지고 있는 사탕의 수의 합, 마지막으로 N번 학생과 1번 학생의 가지고 있는 사탕의 수의 합이 순서대로 주어진다. 출력첫째 줄부터 N개의 줄에 걸쳐 1번 학생이 가지고 있는 사탕의 수, 2번 학생이 가지고 있는 사탕의 수, …, N번 학생이 가지고 있는 사탕의 수를 순서대로 출력한다. 출력하는 수는 음이 아닌 정수들이어야 하며, 항상 답이 존재하는 경우만이 입력으로 주어진다고 가정해도 좋다. 소스코드 #include using ..

백준] 1439 - 뒤집기

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 문자열 S가 주어진다. S는 백만보다 작은 길이 출력첫째 줄에 다솜이가 해야하는 행동의 최소값을 출력한다. 소스코드 #include #include using namespace std; int main(void) { string s; int len, zeropart = 0, onepart = 0, cnt = 0; cin >> s; len = s.length(); if (s[0] == '0') zeropart = 1; else onepart = 1; for (int i = 1; i < len; i++) { if (s[i] != s[i - 1]) { if (s[i] == '0') zeropart++; else onepart++; } } cout

백준] 1531 - 투명

시간 제한 : 2초메모리 제한 : 128MB 입력첫째 줄에 N과 M이 주어진다. N은 0보다 크거나 같고, 50보다 작거나 같다. M은 0보다 크거나 같고, 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 종이의 좌표가 주어진다. 왼쪽 아래 모서리의 x, y좌표, 오른쪽 위 모서리의 x, y좌표 순으로 주어진다. 모든 좌표는 100보다 작거나 같은 자연수이다. 출력첫째 줄에 정답을 출력한다. 소스코드 #include using namespace std; int main(void) { int arr[101][101] = { 0, }; int n, m, x1, y1, x2, y2, sum = 0; cin >> n >> m; for (int i = 0; i > x1 >> y1 >..

백준] 1855 - 암호

시간 제한 : 2초메모리 제한 : 128MB 입력열의 개수 K(1≤K≤20)가 주어지고 두 번째 줄에는 암호화 된 문자열(모두 영소문자)이 주어진다. (문자열의 길이는 200 이하이며 K의 배수이다.) 출력첫 줄에 원래의 문자열을 출력한다.. 소스코드 #include #include #include using namespace std; int main(void) { int k, len; string crypt; char arr[200][200]; cin >> k >> crypt; len = crypt.length(); for (int i = 0; i < len/k; i++) { if (i % 2 == 0) for (int j = 0; j < k; j++) arr[i][j] = crypt[i*k + j];..

C] fopen, freopen, fdopen를 사용하는 파일 접근 정리

아무래도 C/C++에서 파일 입출력을 사용했던 게 정보올림피아드 대회 문제 풀 때가 마지막이었던 것 같다. 그 당시에는 C++의 fstream이 더 편해서 그걸 이용했고, C를 사용할 때만 반 강제적으로 C의 fopen을 사용하곤 했는데 freopen을 알고 나니까 freopen과 fopen, 덤으로 fdopen에 대해서 조금 더 알고 싶어졌다. freopen은 온라인 저지를 이용한 알고리즘 문제를 풀 때 많이 사용한다. 입력할 데이터가 많으면, 하나하나 치는 것이 다 일이기 때문. 이 때는 입력 데이터를 파일로 만들어서 freopen으로 스트림을 변경시켜주기만 하면 scanf나 printf를 변경하지 않고도 파일입출력을 사용할 수 있어 편리하다.(물론 어지간한 크기의 데이터가 아니면 직접 치는 편이다...

백준] 2966 - 찍기(COCI 2008/2009)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 필기시험의 문제의 수 N이 주어진다. (1 ≤ N ≤ 100)둘째 줄에는 시험의 정답이 주어진다. 출력첫째 줄에 가장 많은 문제를 맞춘 사람이몇 문제를 맞추었는지 출력한다.다음 줄에는 가장 많은 문제를 맞춘 사람의 아이디를 한 줄에 하나씩 출력한다. 상근이의 아이디는 Adrian, 창영이의 아이디는 Bruno, 현진이의 아이디는 Goran이다. 아이디 여러 개를 출력하는 경우에는 상근이, 창영이, 현진이 순서로 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n, max = -1, len, ans[3] = { 0, }, meta[3][6] = { {0,1,2},{1,0..