알고리즘 문제풀이/BOJ
-
BOJ 11723번 집합 c++ 및 java 풀이 난이도: 실버5 백준 11723번 집합 문제 정리 비어 있는 공집합 S가 주어졌을때 다음 연산을 수행하는 프로그램을 작성하시오 add x : S에 x를 추가한다. (1
[비트마스킹, set] 백준 11723번 집합 c++, java 풀이BOJ 11723번 집합 c++ 및 java 풀이 난이도: 실버5 백준 11723번 집합 문제 정리 비어 있는 공집합 S가 주어졌을때 다음 연산을 수행하는 프로그램을 작성하시오 add x : S에 x를 추가한다. (1
2020.06.30 -
BOJ 11724번 연결 요소의 개수 c++ 및 java 풀이 난이도: 실버3 백준 11724번 연결 요소의 개수 문제 정리 방향 없는 그래프가 주어질때 그래프의 연결 요소(Connected Component)의 개수를 구하시오 연결 요소 란?? 그래프는 여러 개의 고립된 그래프로 구성될 수 있는데 서로 연결된 여러 개의 고립된 그래프 각각을 연결 요소라고 한다. 연결 요소의 특징 연결 성분에 속한 모든 정점을 연결하는 경로가 있어야 한다. 또 다른 연결 성분에 속한 정점과 연결하는 경로가 있으면 안된다. BFS, DFS를 통해 시작 정점으로부터 도달 가능한 모든 정점들이 하나의 연결성분이 된다. 문제 접근 처음에 주어진 예제를 잘못 보고 문제를 이해를 잘 못해서 빨리 풀지 못했습니다 ㅠㅠㅠ 예제를 똑바..
[유니온 파인드, bfs] 백준 11724번 연결 요소의 개수 c++, java 풀이BOJ 11724번 연결 요소의 개수 c++ 및 java 풀이 난이도: 실버3 백준 11724번 연결 요소의 개수 문제 정리 방향 없는 그래프가 주어질때 그래프의 연결 요소(Connected Component)의 개수를 구하시오 연결 요소 란?? 그래프는 여러 개의 고립된 그래프로 구성될 수 있는데 서로 연결된 여러 개의 고립된 그래프 각각을 연결 요소라고 한다. 연결 요소의 특징 연결 성분에 속한 모든 정점을 연결하는 경로가 있어야 한다. 또 다른 연결 성분에 속한 정점과 연결하는 경로가 있으면 안된다. BFS, DFS를 통해 시작 정점으로부터 도달 가능한 모든 정점들이 하나의 연결성분이 된다. 문제 접근 처음에 주어진 예제를 잘못 보고 문제를 이해를 잘 못해서 빨리 풀지 못했습니다 ㅠㅠㅠ 예제를 똑바..
2020.06.28 -
BOJ 1676번 팩토리얼 0의 개수 c++ 및 java 풀이 난이도: 실버3 백준 1676번 팩토리얼 0의 개수 문제 정리 N이 주어질때 N!의 맨 뒤에서 부터의 0이 아닌 숫자가 나올때 까지의 0의 개수를 구하여라 N은 0이상 500이하의 수이다. 문제 접근 처음에는 나이브하게 팩토리얄을 직접구해보려 했습니다. 하지만 역시나 20!까지 밖에 구할 수 없었습니다. 그래서 규칙을 찾아보았다. 16팩토리얄 까지 구해보면서 0의 개수가 군수열을 이루는것 같았습니다. 그래서 그렇게 풀었지만 실패... 그래서 다른 방법을 생각해보았습니다. 10이 몇개 곱해지는지 찾는 것!! 10이 몇개있는지 찾기 위해 인수분해하여 2와 5가 몇개있는지 찾아갑니다. 그리고 2와 5의 개수중 최소값이 10의 개수가 됩니다. 예를들..
[수학, DP] 백준 1676번 팩토리얼 0의 개수 c++, java 풀이BOJ 1676번 팩토리얼 0의 개수 c++ 및 java 풀이 난이도: 실버3 백준 1676번 팩토리얼 0의 개수 문제 정리 N이 주어질때 N!의 맨 뒤에서 부터의 0이 아닌 숫자가 나올때 까지의 0의 개수를 구하여라 N은 0이상 500이하의 수이다. 문제 접근 처음에는 나이브하게 팩토리얄을 직접구해보려 했습니다. 하지만 역시나 20!까지 밖에 구할 수 없었습니다. 그래서 규칙을 찾아보았다. 16팩토리얄 까지 구해보면서 0의 개수가 군수열을 이루는것 같았습니다. 그래서 그렇게 풀었지만 실패... 그래서 다른 방법을 생각해보았습니다. 10이 몇개 곱해지는지 찾는 것!! 10이 몇개있는지 찾기 위해 인수분해하여 2와 5가 몇개있는지 찾아갑니다. 그리고 2와 5의 개수중 최소값이 10의 개수가 됩니다. 예를들..
2020.06.27 -
BOJ 9095번 1,2,3 더하기 c++ 및 java 풀이 난이도: 실버3 백준 9095 1,2,3 더하기 문제 정리 어떤 수 N이 주어질때 1,2,3의 합으로 N을 나타낼 수 있는 방법의 개수를 구하여라. 1+2+1 과 2+1+1은 다른 방법이다 N은 양수이며 11보다 작다. 문제 접근 재귀를 이용해서 풀면 되겠다고 생각하였습니다. 1,2,3으로 모두 빼면서 0이 될때까지 재귀를 이용해 빼보는 것입니다. 예를들어 4-1 = 3 3-1 = 2 2-1 = 1 1-1 = 0 (1,1,1,1) 4-2 = 2 2-1 = 1 1-1 = 0 (2,1,1) 와 같이 됩니다 문제 풀이 테스트 케이스 수를 입력받습니다. N을 입력받고 N에서 1뺀 수, 2를 뺀 수, 3을 뺀 수를 재귀함수에 넣어서 0으로 만듭니다. 0..
[재귀, DP] 백준 9095 1,2,3 더하기 c++, java 풀이BOJ 9095번 1,2,3 더하기 c++ 및 java 풀이 난이도: 실버3 백준 9095 1,2,3 더하기 문제 정리 어떤 수 N이 주어질때 1,2,3의 합으로 N을 나타낼 수 있는 방법의 개수를 구하여라. 1+2+1 과 2+1+1은 다른 방법이다 N은 양수이며 11보다 작다. 문제 접근 재귀를 이용해서 풀면 되겠다고 생각하였습니다. 1,2,3으로 모두 빼면서 0이 될때까지 재귀를 이용해 빼보는 것입니다. 예를들어 4-1 = 3 3-1 = 2 2-1 = 1 1-1 = 0 (1,1,1,1) 4-2 = 2 2-1 = 1 1-1 = 0 (2,1,1) 와 같이 됩니다 문제 풀이 테스트 케이스 수를 입력받습니다. N을 입력받고 N에서 1뺀 수, 2를 뺀 수, 3을 뺀 수를 재귀함수에 넣어서 0으로 만듭니다. 0..
2020.06.26 -
BOJ 18870번 좌표 압축 c++ 풀이 난이도: 실버2 백준 18870번 좌표 압축 문제 정리 수직선 위의 값이 주어질때 이를 좌표압축해여 표현하여라 주어지는 수의 개수는 1
[좌표압축] 백준 18870번 좌표압축 c++, java 풀이BOJ 18870번 좌표 압축 c++ 풀이 난이도: 실버2 백준 18870번 좌표 압축 문제 정리 수직선 위의 값이 주어질때 이를 좌표압축해여 표현하여라 주어지는 수의 개수는 1
2020.06.25 -
BOJ 2630번 색종이 만들기 문제 자바(java) 풀이 난이도: 실버3 백준 2630번 색종이 만들기 문제 정리 여러개의 정사각형칸들로 이루어진 종이가 있으며 파란색 또는 하얀색으로 칠해져있다. 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 종이를 만드려고 한다. 종이가 모두 같은 색으로 칠해져있지 않으면 가로와 세로로 중간 부분을 잘라나간다. 이를 모두 똑같은 색깔의 종이만 남거나 하나 밖에 남지 않을때까지 반복한다. 종이의 크기는 NxN이며 (2,4,8,16,32,64,128) 크기중 하나이다. 하얀색:0, 파란색: 1 최종적으로 하얀색 색종이의 개수와 파란색 색종이의 개수를 출력한다. 문제 접근 어떤 조건을 두고 조건이 만족하지 않으면 계속 반복되는 구..
[재귀] 백준 2630번 색종이 만들기 자바 풀이BOJ 2630번 색종이 만들기 문제 자바(java) 풀이 난이도: 실버3 백준 2630번 색종이 만들기 문제 정리 여러개의 정사각형칸들로 이루어진 종이가 있으며 파란색 또는 하얀색으로 칠해져있다. 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 종이를 만드려고 한다. 종이가 모두 같은 색으로 칠해져있지 않으면 가로와 세로로 중간 부분을 잘라나간다. 이를 모두 똑같은 색깔의 종이만 남거나 하나 밖에 남지 않을때까지 반복한다. 종이의 크기는 NxN이며 (2,4,8,16,32,64,128) 크기중 하나이다. 하얀색:0, 파란색: 1 최종적으로 하얀색 색종이의 개수와 파란색 색종이의 개수를 출력한다. 문제 접근 어떤 조건을 두고 조건이 만족하지 않으면 계속 반복되는 구..
2020.06.24