본문 바로가기

전체 글199

백준 1012 1. 문제분석심어져 있는 배추(1)를 모두 해충으로 부터 보호하기 위해서 몇 마리의 지렁이가 필요한지 구하는 문제시간제한은 1초로 50*50 = 2,500 최대 연산을 수행해도 CPU는 1초당 대략 1억번 연산을 수행한다고 가정했을 때 이중 for문 O(n*n) 알고리즘으로 풀어도 됨 로직)1. 이차원 배열의 크기만큼 이중 for문을 돌면서 첫번째 배추의 위치를 큐에 넣음-> dist[](방문표시) 배열에 1을 넣어서 방문여부를 남김, 지렁이 개수를 1증가-> 상하좌우로 인접한 배추가 있는지 체크 --> 인접한 배추가 있으면 dist[](방문표시) 배열에 1을 넣어서 방문여부를 남김 2. 큐가 비게되면 이중 for문을 다시 돌면서 dist(방문표시)가 0이면서 배추가 있는지 확인-> 새로운 구역에 지렁이.. 2024. 4. 26.
3D 게임 오브젝트 클릭 or 터치시 UI 띄우기 유니티에서 제공되는 "IPointerClickHandler" 인터페이스로 PC에서 마우스 클릭시나 모바일에서 클릭 이벤트를 구현할 수 있다. UI가 아닌 3D 오브젝트에 클릭 이벤트를 적용하고 싶으면 3가지의 조건이 필요하다. 1. main 카메라에 "Pyscis Raycaster" 컴포넌트 2. UI를 띄울 대상 오브젝트에 Collider 컴포넌트 3. Event System 참고 : https://maintaining.tistory.com/entry/Unity-IPointer-Interface-%ED%81%B4%EB%A6%AD-%ED%84%B0%EC%B9%98-%EC%9D%B4%EB%B2%A4%ED%8A%B8 2024. 4. 24.
백준 1697 1. 문제 분석 불! 문제와 비슷하게 상하좌우로 체크하는 대신에 -1, 1, *2 총 3가지 경우의 수로 체크하는 방식 그리고 시작 위치가 주어지는 범위가 0~100,000 사이인 것이지 이동 중에는 100,000을 넘길 수 있다는 사실을 인지해야 된다. 그래서 배열의 범위를 200,000으로 세팅하면 문제없이 풀 수 있다. 2. 코드 #include #include using namespace std; int dist[100002]; // -1, 1, *2 이동 int dx[] = {-1,1,2}; int main(void) { ios::sync_with_stdio(0); cin.tie(0); // 1.입력 int N, K; cin >> N >> K; // 2.로직 // 방문하지 않은 지점을 모두 -1.. 2024. 4. 23.
네트워크 기초 네트워크란?노드(네트워크에 속한 컴퓨터 또는 통신장비)들이 데이터를 주고받을 수 있도록 디지털 전기 통신망으로 연결한 것 인터넷전 세계를 연결하는 범위가 큰 네트워크ex) www -> 인터넷을 통해 웹과 관련된 데이터를 공유하는 것 네트워크 범위1. LAN(근거리 통신망)같은 네트워크 대역에 있는 노드들끼리 통신 2. WAN 네트워크 대역이 다른 노드들이 통신할 때 통신 범위를 넓혀서 네트워크 대역이 다르더라도 통신이 가능하게 만듬 ex) 집에서 컴퓨터로 구글 웹사이트를 들어갔을 때 네트워크 상에서는 다음과 같이 표시된다.  네트워크 통신 방식1. 유니 캐스트1:1로 통신하는 방식(특정한 하나의 대상과의 통신) 2. 멀티 캐스트같은 네트워크 대역에서 특정한 다수를 대상으로 통신 3. 브로드 캐스트같은 네.. 2024. 4. 22.
백준 4179 1. 문제분석 지훈이와 불은 매 분마다 동시에 한칸씩 이동하는데 불은 상하좌우로 한칸씩 이동함 두번째 board 배열과 큐를 만들어서 불이 번지는 시간을 계산하고 세번째 board 배열과 큐를 만들어서 지훈이가 이동하는 최소거리에 불이 붙는지 두번째 board 배열과 비교하면서 계산한다. 지훈이가 **까지 이동할 때 2분이 걸리는데 불은 해당 지점까지 1분이 걸리므로 지훈이가 불이 있는 해당지점의 시간과 같거나 크다면 이동이 불가능하다. 이렇게 하면 시작점이 두 종류인 문제를 풀 수 있는데, 지금 이 방식은 불의 전파는 지훈이의 이동에 영향을 받지 않아서 불만 먼저 전파해서 시간을 계산하는게 가능했다. 그러나 A, B 둘다 서로에게 영향을 준다면 불을 먼저 전파하는데 있어서 지훈이의 이동에 영향을 받기 .. 2024. 4. 21.
백준 7576 1. 문제이해 2. 문제분석 (1,1) ~ (M, N) 까지 이중 for문을 돌면서 1(토마토가 익은 지점)이 있으면 그 지점을 기준으로 삼아서 주변에 0(익지 않은 토마토)를 1로 만드는 과정을 수행하면 되는데 익은 토마토로 만드는 과정이 최대 N*M번 수행될 수 있으니 O(N*N*M*M)의 시간복잡도가 걸리게 되어서 시간 내로 해결이 불가능하다. 예시를 들자면 n=2, m=3 일때 토마토가 익은지점까지 찾아가는데 4번(n*m)이 걸리고 토마토가 익은지점에서 인접한 익지 않은 토마토를 큐에 push, pop 해서 모두 익은 토마토로 만드는 과정이 4번(n*m)걸린다. 그래서 1(토마토가 익은)인 지점을 모두 큐에 넣고 BFS를 수행하는 것이다. 그리고 board 배열(익은 토마토, 익지않은 토마토, 벽.. 2024. 4. 20.