목록생활 (730)
No Rules Rules
큐 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include using namespace std; int main(){ ios::sync_with_stdio(false), cin.tie(); register int N; queue q; cin >> N; string tmp; for(register int n = 0, ..
재귀의 귀재 https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include using namespace std; int T; string S; void solution(register int s, register int l){ if(s >= l) cout
맥주 마시면서 걸어가기 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include #include using namespace std; int T, N, ex, ey; pair arr[101]; bool visit[101]; bool bfs(register int x, register int y){ memset(visit, fal..
빙산 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include #include using namespace std; int N, M, dx[4], dy[4], arr[301][301], tmp[301][301]; bool visit[301][301]; void melt(){ for(register int x = 1, y; x
안전 영역 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include #include using namespace std; int N, dx[4], dy[4], arr[101][101], ans; bool visit[101][101]; void bfs(register int height){ memset(visit, false, sizeof(v..
스타트링크 https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include using namespace std; int ans[1000001]; bool visit[1000001]; int main(){ ios::sync_with_stdio(false), cin.tie(NULL); register int F, S, G, U, D; cin >> F >> ..
촌수계산 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 입력으로 주어진 X와 Y간 촌수 관계를 bfs로 구하는 방식입니다. 하나의 X에 여러개의 Y가 존재할 수 있으므로 너비 우선 탐색인 bfs가 dfs보다 효율이 좋습니다.
파이프 옮기기 1 https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include #include using namespace std; int N, arr[17][17], dp[17][17][3]; //dp의 3은 0:가로, 1:대각선, 2:세로 int main(){ ios::sync_with_stdio(false), cin.tie..
괄호 추가하기 https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 1+2+3+4 를 예로 들면, 괄호는 총 다음과 같이 올 수 있습니다. (1+2)+3+4 1+(2+3)+4 1+2+(3+4) (1+2)+(3+4) 즉 첫 괄호 이후의 괄호는 5번째 문자에 해당되는 정수부터 시작될 수 있습니다. 이에 따른 규칙이 존재하므로 dfs를 이용하여 풀이하였습니다.
암호제작 https://www.acmicpc.net/problem/1837 1837번: 암호제작 원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로 www.acmicpc.net // woohyeon.kim // kim519620.tistory.com #include #include using namespace std; int main() { ios::sync_with_stdio(false), cin.tie(NULL); string P; register int K; cin >> P >> K; for (register int i = 2, j; i < K; ++i) ..