728x90

프로그래밍 410

백준] 4949 - 균형잡힌 세상(ACM-ICPC Regionals)

시간 제한 : 1초메모리 제한 : 128MB 입력하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다.입력의 종료조건으로 맨 마지막에 점 하나(".")가 들어온다. 출력각 줄마다 해당 문자열이 균형을 이루고 있으면 "yes"를, 아니면 "no"를 출력한다. 소스코드 #include #include #include using namespace std; int main(void) { string tmp; while (1) { getline(cin, tmp); if (tmp == ".") break; int len = tmp.length(); bool check = true; stack ..

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

함수 오버로딩(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,..

백준] 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 >..

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

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

C#] Parallel 클래스를 이용한 병렬 프로그래밍

2010년 이후로 줄곧 멀티 코어 보급률이 빠르게 늘어, 현 시점에서는 보급형 라인업에도 기본적으로 듀얼 코어가 탑재되는 시점에서, 다수의 코어를 활용하기 위해 .NET Framework 4.0에 추가된 개념. 병렬 루프에 관련한 메서드들을 제공한다. 이것을 이용해서 다수의 데이터를 병렬 처리하거나, 방대한 작업을 병렬 처리하는 것이 가능하다. Parallel.For(), Parallel.Foreach()를 이용해서 병렬로 분할 처리하는 기능을 사용할 수 있으며 병렬 처리를 하는 경우 두 가지 특징이 있다. 단일 스레드로 처리하는 경우보다 더 빠른 처리가 가능함.방대한 양의 데이터를 처리하는 경우, 다른 스레드에서 변경되는 값에 영향을 받지 않는다면 이 방법을 쓰는게 순차 처리하는 경우보다 빠른 시간 내..

백준] 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..

728x90