|
|
코딩 테스트 - 맵과 방향벡터 (인접행렬)
( 얄얄 코딩 | 23-02-18 17:29 )
|
|
인접행렬이 문제에서 지도 형태로 나타나는 경우가 있다. 지도에서 방문하는 문제같은 경우 갑자기 인접행렬이나 인접리스트로 바꾸면 안되고 그대로 풀어야 한다. y,x 순으로 만들겠다. dy와 dx는 direction 을 뜻한 방향이고 ny와 nx는 next를 뜻한 다음 위치이다. using namespace std; con... Tag: C++
|
|
깊이우선탐색(DFS)와 너비우선탐색(BFS)
( 얄얄 코딩 | 23-02-19 22:17 )
|
|
둘 다 인접리스트로 이루어졌을때 시간복잡도는 O(V + E) 이고 인접행렬의 경우 O(V^2)가 되는 것은 동일하다. 하지만 차이는 DFS는 메모리를 덜 쓰고, 코드가 짧으며 완전탐색의 경우에 쓴다. BFS는 메모리를 더쓴다. 코드가 길며 가중치가 같은 그래프내에서 최단거리를 구할 수 있다. DFS 코드... Tag: C++
|
|
트리순회 - 후위순위, 전위순위, 중위순위
( 얄얄 코딩 | 23-02-19 22:27 )
|
|
트리순회는 각각의 노드를 정확히 한번씩 방문하는 방법을 말한다. 후위순위는 자손부터 타고올라오는 방법이다. : 4 - 5 - 2 - 3 - 1 전위순위는 맨 윗단부터 자손으로 내려오는 방법이다. (DFS) : 1 - 2 - 4 - 5 - 3 중위순위는 후위 순위에서 가운데 부모노... Tag: C++
|
|
코딩 테스트 - 2178 미로 탐색
( 얄얄 코딩 | 23-02-20 00:02 )
|
|
1. 우선 가중치가 동일하니 BFS를 써야한다. 2. 인풋이 따닥 따닥 붙어있을 경우에는 scanf("%1d" , \&a[i][j]) 를 사용하여 int형 하나씩 받는다. const int max_n = 104; int dy[4] = { -1,0,1,0 }; int dx[4] = { 0,1,0,-1 }; int n, m, a[max_n][max_n], visi... Tag: 코딩 테스트
|
|
코딩 테스트 - 1012 유기농 배추
( 얄얄 코딩 | 23-02-20 21:43 )
|
|
이 문제는 DFS를 사용하였고, 연결된 컴포넌트 문제였다. 근데 x y축이 바뀌어있어서 여러번 틀렸었다. x y를 주의해서 나중에 다시 풀어봐야겠다. int t,n,m,k, ret; int a[51][51]; int visited[51][51]; int dy[4] = { -1,0,1,0 }; int dx[4] = { 0,1,0,-1 }; void df... Tag: 코딩 테스트
|
|
코딩 테스트 - 2468 안전 영역
( 얄얄 코딩 | 23-02-20 22:33 )
|
|
주의 할 부분이 있다. 노트에 아무것도 잠기지 않을 수 있다라고 적혀있으니 출력할 ret의 초기값을 1로 잡아놓아야 맞았다고 뜬다. 그리고 이 문제를 처음에는 너무 복잡하게 생각했는데 동일하게 dfs로 갈 수 있는 곳만 체크해주면 된다. int a[101][101]; int visited[101][101]; int cnt... Tag: 코딩 테스트
|
|
코딩 테스트 - 2583 영역 구하기
( 얄얄 코딩 | 23-02-21 02:26 )
|
|
dfs 함수로 갯수로 찾는 방법은 int형 함수로 하나씩 하나씩 모아서 반환받는 방법이 있다. 아래와 같이 작성하면 된다. using namespace std; int m, n, k; int lx, ly, rx, ry; int a[104][104]; int visited[104][104]; int dy[4] = { -1,0,1,0 }; int dx[4] = {... Tag: 코딩 테스트
|
|
코딩 테스트 - 3986 좋은 단어
( 얄얄 코딩 | 23-02-12 15:07 )
|
|
현재 맨 윗단에 있는 stack과 새로 들어올 단어가 같은지 판별해서 같으면 애니팡 게임처럼 없애는 방식을 사용했다. #include <iostream> #include <algorithm> #include <vector> #include <string> #include <map> #include <stack> using namespace std; stri... Tag: 코딩 테스트
|
|
코딩 테스트 - 1629 곱셈
( 얄얄 코딩 | 23-02-12 17:43 )
|
|
이 문제를 보았을 때 최대 범위는 ABC 전부 20억 이하이다. 범위도 long long을 훨신 초과한다. 그리고 for문으로 곱해 줄 경우 제한시간 0.5초이기 때문에 무리가 있을 것이다. 그러니 시간 복잡도를 줄여야한다. 그러니 a의 승으로 올라가는 것들을 2로 나누... Tag: 코딩 테스트
|
|
코딩 테스트 - 11655 ROT13
( 얄얄 코딩 | 23-02-10 16:25 )
|
|
문제 풀 때 주의해야할 점 1. string을 cin 으로 사용하면 띄어쓰기를 구분한다. 반드시 getline을 사용하자. 2. 대문자에서 소문자로 넘어갈 수 있으니 꼭 -26 처리를 해주자. 참고로 getline은 string 헤더파일에서 가져와쓰면 된다. // Algo.cpp : 이 파일에는 'm... Tag: 코딩 테스트
|
|
코딩 테스트 - 9996 한국이 그리울 땐 서버에 접속하지
( 얄얄 코딩 | 23-02-10 17:22 )
|
|
일단 prefix 접두사와 suffix 접미사를 찾아야한다. 그건 substr로 찾아주는데 이건 반드시 문자가 하나라고 생각하면 안되고 여러개가 될 수 있다라고 생각해야한다. a * a 도 있지만 ab * ab도 있다는 말이다. 그래서 *를 찾아서 그 pos 기준으로 찾아주면된다. ... Tag: 코딩 테스트
|
|
코딩 테스트 - 2559 수열
( 얄얄 코딩 | 23-02-10 18:32 )
|
|
일단 이 코드는 a[0]의 전재를 0으로 깔고 시작하는 것이다. 여기서 중요한 점은 for문에서 (int i = k; i<=n; i++) 이다. k부터 n까지 돌 것인데, a[i] - a[i - k] 이 방법을 택하면 누적합을 구할 수 있다. #include <iostream> #include <vector> #include <algorithm>... Tag: 코딩 테스트
|
|
C++ sync_with_stdio(false)
( 얄얄 코딩 | 23-02-11 03:23 )
|
|
https://blog.naver.com/harang8069/222425811416 [C++] cin.tie(NULL); ios::sync_with_stdio(false); 의 의미, 뜻 cin.tie(NULL); cin과 cout를 풀어준다(untie)는 뜻이다. default 설정은 cin과 cout가 묶... Tag: C++
|
|
C++ endl보다 '\n'을 써야하는 이유
( 얄얄 코딩 | 23-02-11 12:37 )
|
|
https://blog.naver.com/jhc9639/222829118583 C++ 코딩테스트 팁 : endl보다는 '\n'을 써라. endl보다는 ‘\n’을 쓰는 것이 속도측면에서 좋습니다. endl은 ‘\n’ + 버퍼플러시라고 생각하면 됩니다.... blog.naver.com 위에 ... Tag: C++
|
|
코딩 테스트 - 1620 나는야 포켓몬 마스터 이다솜
( 얄얄 코딩 | 23-02-11 16:03 )
|
|
문제 시간이 너무 빡세다. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 를 반드시 사용해서 버퍼를 사용하지 않겠다라고 선언해야만 돌아간다. 그리고 endl 대신에 '\n'을 사용해야 돌아간다. 그 다음으로 주의해야... Tag: 코딩 테스트
|
|