전체 글 149

5 BAEKJOON) 백준1010 : 다리 놓기

*해결방안 : 동쪽에 있는 '서로 다른' M개의 사이트 중에서 N개를 뽑은 다음 순서대로 서쪽 사이트에 연결하면 된다. 따라서 조합 mCn을 쓰면 된다. M!/((M-N)!N!)이다. *추가 : 3개의 팩토리얼을 다 구현하는 것은 번거로우므로 M!/(M-N)!은 M부터 (M-N+1) 까지 곱해진 것으로 바꾼다. *int 범위를 넘는 값이 나오므로 double 사용하였다. #define _CRT_SECURE_NO_WARNINGS #include int main() { int val = 0; int m = 0; int n = 0; double total = 0; double p = 1; scanf("%d", &val); for (int i = 0; i < val; i++) { scanf(" %d %d", &..

5_BAEKJOON 2022.11.07

5 BAEKJOON) 백준 10828 : 스택

*스택의 핵심은 top을 기록하는 것이다. top만 알고 있으면 다른 함수를 구현하는 것은 어렵지 않다. * 문자열을 받는 과정에서 기억이 가물가물해서 시간이 좀... 걸렸다. %[^\n]을 이용하면 개행까지의 문자열을 읽을 수 있다. 즉 공백도 포함가능하다는 것이다. 하지만 이 문제에서는 쓸일이 없었다... *내가 겪은 오류 : Run-Time Check Failure #2 - Stack around the variable 'order' was corrupted order 배열에서 크기가 작아서 오류가 생겼던 것이었다. *P.S. 내일도 한 문제 풀려나..? #define _CRT_SECURE_NO_WARNINGS #include #include int main() { int stack[10000] =..

5_BAEKJOON 2022.11.07

5 BAEKJOON) 백준 : Stack에 대해

*스택 -같은 구조와 같은 크기의 데이터를 정해진 방향으로만 쌓을 수 있다. -Top으로 정한 한 곳으로만 접근하도록 제한된다. -아래에서 위로 차곡차곡 쌓이게 된다. (top: 항상 스택의 가장 위에 있는 데이터) -LIFO(Last In First Out) *스택에 필요한 함수 1.Stack : 데이터를 담을 곳 2.isEmpty() : 스택이 공백인지 확인 3.peek() : top에 있는 데이터 반환 4.push() : top을 통한 삽입연산 5.pop() : top을 통한 삭제 연산 *순차자료 구조를 이용한 스택은 1차원 배열 변수를 선언하여 구현한다. >>물리적으로 고정된 배열을 사용하기 때문에 사용 중에 크기 변경은 어려우므로 메모리 사용효율이 떨어진다. =>연결 자료구조로 해결가능하다. (..

5_BAEKJOON 2022.11.06

5 BAEKJOON) 백준 2563 : 색종이

*풀이 방법 : 도화지를 이차원 배열로 구현하고 색종이를 올려놓은 곳은 값을 넣어 구분한다. *색종이가 도화지의 범위를 나오는 경우는 고려하지 않는 듯하다. #define _CRT_SECURE_NO_WARNINGS #include int main() { int num, a, b; scanf("%d", &num); int map[100][100] = { 0, }; int count = 0; for (int i = 0; i < num; i++) { scanf("%d %d", &a, &b); for (int j = a; j < a + 10; j++) {//x for (int k = b; k < b + 10; k++) { if (map[j][k] == 0) { map[j][k] = 1; count++; } } ..

5_BAEKJOON 2022.11.05

5 BAEKJOON) 백준 1009 : 분산처리

*시간초과 문제 발생 -해결 방안 : 문제에서 요구하는 것은 a^b%10을 구하는 것이나 a^b를 전부 계산할 필요없이 일의 자리만 알아내면 된다. *Code #define _CRT_SECURE_NO_WARNINGS #include int main() { int t = 0; int a = 0; int b = 0; int out = 0; scanf(" %d", &t); for (int i = 0; i < t; i++) { scanf(" %d %d", &a, &b); int aa = a%10; switch (aa) { case 0: out = 10; break; case 1: out = 1; break; case 5: out = 5; break; case 6: out = 6; break; case 2: if..

5_BAEKJOON 2022.11.04

[C/C++_두들 낙서]함수_재귀 함수

재귀: 자기 자신의 정의에 자기 자신이 포함되있는 것 예시) 팩토리얼 실현 팩토리얼 정의 n!=n*(n-1)!(자기 자신의 정의에 자신이 포함되어 있다고 볼 수 있다.) 예시 함수) int fact(int n){ if(n==1){ return 1; } return n*fact(n-1); } **재귀함수를 쓸때는 직접 가능한 나열하여 보는 것이 정확할 것 같다. 5*f(4)=5*4*f(3)= ....... =5*4*3*2*f(1) f(1)=1*f(-1)이라고 할 수는 없으므로 n=1일때 1일 반환해야함을 알 수 있다.

4_전공 과목 2021.08.23

[C/C++ _두들 낙서] 함수_(Call-by-Value)_(call-by-address)

*모르는 것을 채워넣는 위주로 작성 1.용어 정의: 함수가 실행되었을 때 어떤 명령을 실행할 것인지 중괄호 안에 적는다. 호출: 이미 정의된 함수를 실행하는 것 매개변수(parameter) 인수(argument) 스코프(scope): 변수가 유효한 범위를 나타냄. 블록 스코프와 함수 스코프 존재 스왑(swap): 두 변수에 들어있는 값을 뒤바꾸는 것 ------------------------------------------------------------------------------------------------------- 2.Return Return은 함수에서 값을 반환하는 역할도 하지만 함수를 종료시키는 역할도 한다. void함수에서도 마찬가지로 return문이 사용가능한데 함수를 종료시키는..

4_전공 과목 2021.08.23