백준 #1759 암호 만들기
백준 #1759 암호 만들기 알파벳 C 개 중 L 개를 고르는 조합을 모두 출력하는 문제. 단, 적어도 모음 한 개와 자음 두 개가 있어야 한다. 재귀적으로 조합을 구하는 알고리즘을 사용하면 구할 수 있다. c0 c0c1 c1c2 c2c3 c3cC cCC개 C개c0 c0c0 c...
백준 #1759 암호 만들기 알파벳 C 개 중 L 개를 고르는 조합을 모두 출력하는 문제. 단, 적어도 모음 한 개와 자음 두 개가 있어야 한다. 재귀적으로 조합을 구하는 알고리즘을 사용하면 구할 수 있다. c0 c0c1 c1c2 c2c3 c3cC cCC개 C개c0 c0c0 c...
부스트캠프 부스트캠프는 네이버 커넥트재단에서 사람들에게 프로그래밍 교육을 해주는 프로그램이다. 이곳에서 배우면 개발 실력을 기를 수 있을 것 같아서 지원했다. 나는 안드로이드 개발을 선택했다. 웹, iOS, 안드로이드 세 개의 분야에 지원을 받았는데 딱히 TO를 나누고 뽑는 것 같지는 않았다. ...
백준 #14500 테트로미노 테트로미노 N * M 배열에 테트로미노를 놓아 테트로미노가 덮는 정수의 합이 가장 큰 경우일 때의 합을 출력하는 문제. DFS를 사용하여 풀 수 있다. DFS로 탐색 가능 DFS로 탐색 가능 DFS로 탐색 불가능 DF...
백준 #17298 오큰수 수열에서 어떤 수보다 오른쪽에 있으면서 큰 수 중 가장 왼쪽에 있는 수를 출력하는 문제. 스택을 사용해서 풀 수 있다. vector v에 모든 입력을 받은 후, for 문으로 순회한다. 스택에는 v의 index를 저장하는데, 스택의 top이 가리키는 수보다 v[i]가 클 경우 pop하고 ans vector에 저장한다. ...
백준 #11049 행렬 곱셈 순서 DP를 활용하는 문제. 이전까지 DP를 쓰는 문제는 top-down 방식을 썼는데(구현이 쉬워서) 실행 속도에 차이가 큼을 알고 나서는 bottom-up 방식을 쓰려고 한다. dp[i][j] = i부터 j까지의 최소 행렬 곱셈 개수 = min(dp[i][k] + dp[k + 1][j] + i번째 행렬의 세로 * ...
백준 2146 다리 만들기 BFS를 활용하는 문제. 하나의 섬 좌표를 모두 큐에 넣은 뒤 가장 빨리 다른 섬을 만나는 경우를 구한다. 모든 섬에 대한 최솟값을 구하면 된다. 백준 #7576 토마토 토마토 문제와 비슷한다. #include <iostream> #include <bits/stdc++.h> #include <...
백준 #1238 파티 지향 그래프에서 한 정점까지의 왕복 거리가 최대인 다른 정점을 구하는 문제. 다익스트라를 사용하여 풀 수 있다. #include <iostream> #include <bits/stdc++.h> #include <vector> #include <queue> #include <alg...
백준 #11779 최소비용 구하기 2 어느 정점에서 다른 정점까지 가는 최소비용과 도달하는 데 방문한 정점의 수와 정점을 출력하는 문제. 다익스트라 알고리즘을 사용하여 풀 수 있다. 경로가 수정될 때마다 직전에 방문한 정점을 prevVisited 배열에 저장한 후, 역순으로 출력한다. #include <iostream> #include...
백준 #11399 ATM 정렬을 활용하는 문제. 오름차순으로 정렬 후 cumulative sum을 모두 더해주면 된다. #include <iostream> #include <bits/stdc++.h> #include <vector> #include <algorithm> using namespace std...
백준 #13459 구슬 탈출 빨간 구슬과 파란 구슬이 있는 판을 10 회 이하로 기울여 빨간 구슬이 구멍에 빠지게 할 수 있는지 구하는 문제. BFS를 사용하여 가능한지의 여부를 구할 수 있다. 구슬이 두 개여서 한 번 기울일 때마다 두 구슬의 좌표를 각각 구해주고 겹치지 않게 해주어야 한다. 백준 #13460 구슬 탈출 2 위 문제가 이 문...