만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/programmers&bj 78

[C++] 백준 10951번: A+B - 4

https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 입출력의 방식을 기본부터 이해하기 위해 풀고 있는 A+B 시리즈의 4번문제다. 테스트케이스의 갯수 T가 주어지지않는 경우의 입력을 어떻게 루프문으로 처리해야하는지를 알려주는 문제다. 기존의 문제들은 보통 첫째줄에 몇 회의 테스트케이스인지를 알려주는 입력이 주어지지만 이 문제는 없다. 그렇다고 while(1) {...} 식으로 무한루프 처리해버리면 오류가 나서 틀리게 된다. 테스트 케이스가 주어지지 않는 경우 while( "입력" ) {...} 의 방식으로 문제를 해결할 수 있다. #include using..

[C++] 백준 4963번: 섬의 개수

https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사 www.acmicpc.net 그래프 문제인데. 그냥 동적배열로 재귀형태의 함수로써 풀었다. 별로 효율적이진 않은듯 하다. 주어진 보드판 50*50 의 지도에서 연결된 섬들을 하나하나 지워나가는 방식인데, 그냥 visited 배열을 둬서 방문했다면 아예 섬 갯수를 세는 부분에서 continue 하는 방식이 더 시간이 적게 들 듯 하다. Code #include #include #define MAX 50 using namespace s..

[C++] 백준 1080번: 행렬

https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 코드 #include #include #define MAX 50 using namespace std; void toggle(bool (*arr)[MAX],int n,int m) { for(int i=n; i N >> M; for(int n=0 ; n> A[n]; } for(int n=0; n> B[n]; for(int m=0; m

[C++] 백준 1058번: 친구

https://www.acmicpc.net/problem/1058 1058번: 친구 지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람� www.acmicpc.net 2-친구를 구하는 문제다. 2-친구라는건 A와 B가 친구거나, A와 B가 친구가 아니더라도, 인싸인 C에 의해 연결될 수 있는 사이를 말하는 것이다. A-B 이거나 A-C-B 인 관계를 의미한다. 시간이 매우 오래 걸리는 방법을 택한듯 하다. 거의 브루트포스 아닐까 싶다. 내 풀이가 그렇게 좋은 풀이는 아닌것 같다. #include #include #include #define MAX_N 50 us..

[C++] 백준 1012번 유기농 배추

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 � www.acmicpc.net flush - 배열을 0으로 초기화 out_of_bound - array index 의 잘못된 참조로 발생할 예외 방지 add_worm - 배치된 벌레가 커버가능한 배추들을 처리함 find_worm - 놓아야하는 벌레의 수를 계산 코드 #include #define MAX 50 using namespace std; char loc[MAX][MAX] = {0}; int moveX[4] = {0,1,-1,0}..

[C++][알고리즘] 백준 1003번 피보나치 함수

https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net solved.ac 실버 3난이도 문제. 당연히 맞을 줄 알았는데 틀려서 당황. 알고보니 N이 40보다 작거나 "같은" 건데 그냥 > T; struct list pibonacci[MAX_N]; pibonacci[0].ones = 0; pibonacci[0].zeros = 1; pibonacci[1].ones = 1; pibonacci[1].zeros = 0; for(int i=2; i N; printf("%d %d\n",pibonacci[N].zeros,pibonacci[N].ones); } r..

[C++][알고리즘] 달팽이 숫자 만들기

달팽이숫자? N*N 배열의 숫자가 달팽이모양으로 채워지는 것을 의미. EX) N=3 일때 1 2 3 8 9 4 7 6 5 처음접했더니 조금 골치 아팠다. 내 코드가 원시적인거 같기도 하고, 분명 더 똑똑한 방법이 많을듯... 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #include #define MAX_N 10 using namespace std; int arr[MAX_N][MAX_N] = {0}; void snail(int N) { int nowx=0; int nowy=0; in..