본문 바로가기

백준23

[백준] 2179 비슷한 단어 c++ https://www.acmicpc.net/problem/2179 주의해야 될 조건1. 최대인 경우가 여러 개일 때에는 입력되는 순서대로 제일 앞쪽에 있는 단어를 답으로 함=> 무조건 갱신2. 우선 S가 입력되는 순서대로 제일 앞쪽에 있는 단어인 경우를 출력하고, 그런 경우도 여러 개 있을 때에는 그 중에서 T가 입력되는 순서대로 제일 앞쪽에 있는 단어인 경우를 출력접두사의 길이가 같은 경우가 여러개일 때를 살펴보면=> abcz, abcd, abce, abc 순서대로 입력  -> 답 : abcz, abcd abcz가 제일 앞에 있으므로 S, abcd가 그 다음 앞에 있으므로 T 이다.sort() 후 : abc, abcd, abcde, abcz 가 된다. 즉, 입력 순서 인덱스도 고려해줘야 한다. 풀이1... 2024. 7. 18.
[7569] 토마토 c++ https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 풀이 bfs로 풀었다. 3차원 배열에 토마토를 저장해두고 큐가 비기 전까지 bfs를 수행한다. x,y,z 좌표는 pair에 저장해주었다. 3차원 좌표하고 자료구조하고 매칭시키는것이 조금 헷갈렸다. #include #include using namespace std; int box[100][100][100]; int M, N, H;//가로 , 세로, 높이 int ans; in.. 2023. 5. 12.
[백준] 1987 알파벳 c++ 지나왔던 길에 있었던 알파벳이 없는 길로 가야한다. 최대로 지날 수 있는 칸 수를 구하면 된다. 풀이 dfs + 백트래킹 지나온 알파벳인지 체크 -> visit #include using namespace std; int graph[27][27]; bool visit[26]; int R, C; int ans; void dfs(int y,int x, int cnt) { int dx[] = { 0,1,0,-1 }; int dy[] = { 1,0,-1,0 }; visit[graph[y][x]] = true; for (int i = 0; i = 0 && nx >= 0)/.. 2023. 4. 16.
[백준] 11404 플로이드 C++ 플로이드 워셜 알고리즘 : 모든 지점에서 다른 모든 지점까지 최단 경로를 모두 구하는 알고리즘 풀이 a->b로 갈때 1~n 사이의 임의의 정수인 k를 들렸다 가는 경우 중에 최솟값으로 비용을 정한다. 주의 길이 없는 경우를 990만 보다 (99X100000) (99개의 노드를 다 들리고 각 간선 간 비용이 최대값일 경우) 작게 잡으면 안된다. (자연수로 설정할 때) * 그리고 출력할때 한 칸 씩 띄어 출력하라는 말이 없었는데 붙여서 썼더니 틀렸다 1. 길이 없는 경우를 1000000000으로 표현 #include #include using namespace std; int city[101][101]; int n, m; int main() { cin >> n; cin >> m; //입력 a->b로 가는 버.. 2023. 3. 24.