PS/백준

    [ 백준 ] 11723번 : 집합 - ( C++ / C )

    문제 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 풀이법 ( 알고리즘 ) 간단히 S라는 이름의 배열을 선언하고 add 명령이 들어온 경우 값을 넣고, remove 명령이 들어온 경우 값을 지우며 각 명령에 따라 출력을 하는 등 구현을 하였다. 풀이 - C++ ( C ) #include #include //memset using namespace std; int S[22]; int m , x; // m : 수행해야 하는 연산의 수 , x : 연산 시 사용될 int 형 변수 st..

    [ 백준 ] 10026번 : 적록색약 - ( C++/C )

    문제 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이법 ( 알고리즘 ) dfs로 풀었다. 우선 적록색약이 아닌 사람이 봤을 때의 구역의 수를 구한 후, 초록색 부분을 빨간색으로 바꾸어 적록색약인 사람이 봤을 때의 구역의 수를 구하였다. dfs를 돌 땐 다음 이동하는 좌표와 현재 좌표의 색이 같고 방문한 적이 없을 때만 재귀 함수를 실행해주었다. 풀이 - C++ ( C ) #include #include //memset using n..

    [ 백준 ] 1010번 : 다리놓기 - (C++/C , JAVA/자바 , PYTHON/파이썬 , Node.JS/자바스크립트 )

    문제 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 풀이법 ( 알고리즘 ) 문제를 보자마자 직감적으로 nCr 공식이 떠올랐다. m개 중에서 n개를 순서에 상관없이 고르는 것이므로 조합을 사용할 수 있다. 파스칼의 삼각형을 응용하여 풀었다. 풀이 - C++ ( C ) #include using namespace std; int T, n, m; // T : 테스트 케이스의 개수 , n : 서쪽 사이트의 개수, m : 동쪽 사이트의 개수 long ..

    [ 백준 ] 5585번 : 거스름돈 - ( C++/C , JAVA/자바, PYTHON/파이썬, NODE.JS/자바스크립트 )

    문제 https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 풀이법 ( 알고리즘 ) 그리디 알고리즘의 기초 문제이다. 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있기 때문에 지불한 후 받을 돈에서 500엔, 100엔, 50엔, 10엔, 5엔, 1엔을 뺄 수 있을만큼 빼고 그 개수를 출력하면 될 듯하다. 아래 코드들을 본다면 아래로 갈 수록 코드가 깔끔해지고 있다. 여러번 문제를 풀다보니 조금 더 코드가 ..