반응형

분류 전체보기 658

[G5] 백준 15686번 치킨 배달 C++ 백트래킹, 브루트포스 알고리즘, 구현, 플러드필

리뷰 DFS + 플러드필을 조합하여 AC를 받았다, 조합 관련 가지치기가 필요한 문제 안하면 시간 초과 난다 ㅠhttps://www.acmicpc.net/problem/15686 전역 변수n, m, ans : 맵의 한 변의 길이를 저장할 변수 n, 치킨 집의 최대를 저장할 변수 m, 정답을 저장할 변수 ansdx, dy : 4방향 탐색을 위한 방향 배열lst : 맵 정보를 입력 받을 2차원 정수형 벡터BBQ : 치킨 집 정보를 저장할 구조체, 치킨집의 x, y좌표와 현재 이동한 거리를 d에 저장한다.bbqs : 치킨 집의 모든 정보를 저장할 벡터choose : 현재 선택한 치킨집의 인덱스를 저장할 정수형 벡터cnt : bbqs의 길이를 저장할 정수형 변수chic : 치킨 집의 중복을 방지하기 위해 사용할..

[P3] 백준 18437번 회사 문화 5 C++ 세그먼트 트리, 오일러 경로 테크닉, 느리게 갱신되는 세그먼트 트리

리뷰 구간 대체 업데이트, 구간 합, 느린 갱신, 오일러 경로 테크닉을 활용해야 하는 문제https://www.acmicpc.net/problem/18437 전역 변수n, m : 직원의 수 n, 쿼리의 수 mMAX_N : 주어지는 n값의 최대치를 나타낼 정수형 상수 변수, 100001로 초기화 한다.tree : 세그먼트 트리 정보를 저장할 정수형 배열, MAX_N * 4크기로 초기화lazy : 세그먼트 트리 업데이트 정보를 저장할 정수형 배열, MAX_N * 4크기로 초기화path : 부하 직원을 인접리스트로 저장할 정수형 벡터, MAX_N크기로 초기화it : 서브 트리에서 해당 노드에 진입한 시간을 기록할 정수형 배열, MAX_N크기로 초기화ot : 서브 트리에서 해당 노드에서 빠져나온 시간을 기록할 ..

[P3] 백준 14268번 회사 문화 2 C++ 세그먼트 트리, 오일러 경로 테크닉, 느리게 갱신되는 세그먼트 트리

리뷰 오일러 경로 테크닉에 대한 개념을 이해하게 된 문제일반적인 Lazy propagation을 통한 풀이는 인덱스를 지정하기가 불가능해 보인다.https://www.acmicpc.net/problem/14268 전역 변수MAX_N : n값의 최대치를 저장할 정수형 상수 변수, 크기는 10만 1로 초기화 한다.tree : 세그먼트 트리 정보를 저장할 정수형 배열, 크기는 MAX_N * 4로 초기화lazy : 세그먼트 트리의 업데이트 정보를 저장할 정수형 배열, 크기는 MAX_N * 4로 초기화n, m : 직원의 수를 저장할 변수 n, 쿼리의 개수를 저장할 변수 mpath : 직원간의 상하 직속 정보를 인접리스트 형태로 저장할 정수형 벡터, 크기는 MAX_N으로 초기화it : 서브 트리의 시작시간(세그먼트..

[G2] 19236번 청소년 상어 C++ 백트래킹, 시뮬레이션, 구현, 재귀

리뷰 문제 이해에도 시간이 많이 걸리고 구현과 시뮬레이션 디버깅에도 다소 시간이 걸렸으나 한번에 풀긴 했다.https://www.acmicpc.net/problem/19236 전역 변수dx, dy : 8방향 탐색을 위한 방향 배열v : 이미 잡아먹힌 물고기를 방문처리 하기 위한 배열max_val : 잡아먹은 물고기의 번호 최대값을 저장하기 위한 변수sdir : 최초에 잡아먹은 물고기가 갖고 있던 방향 정보를 저장하기 위한 변수Fish : 물고기의 위치와 진행 방향을 저장하기 위한 구조체fishes : 초기 물고기들의 위치와 방향 정보를 저장할 Fish타입 벡터lst : 초기 맵에 존재하는 물고기 번호를 저장하기 위한 4 * 4크기의 정수형 벡터 함수1. inputvoid input() 4 * 4사이즈의 ..

[G4] 백준 2056번 작업 C++ 위상 정렬

리뷰 max이 하나가 정답을 좌지우지 했다 ㅠㅜhttps://www.acmicpc.net/problem/2056 전역 변수n : 작업의 개수 함수없음  문제풀이n값을 입력 받고 작업 시간 정보 times와 인접 리스트를 초기화할 정수 벡터 path를 n + 1크기로 초기화 한다.1부터 n개의 각각의 작업에 걸리는 시간을 times 벡터에 저장해 준다.이후 선행이 필요한 작업을 인접 리스트로 추가해 준다, 역방향으로 삽입해 주어야 한다.선행 작업의 개수를 저장할 벡터 cnt를 n + 1크기, 기본값은 0인 상태로 초기화 해준다.각 작업을 순회하며 작업의 인접리스트에 저장된 작업을의 cnt를 증가시켜준다.정수형 큐 q를 초기화 한 후에 cnt가 0인 작업을 큐에 넣어준다.정답을 저장할 정수형 벡터 ans를 ..

[G4] 백준 4485번 녹색 옷 입은 애가 젤다지? C++ 다익스트라, 최단 경로

리뷰 2차원 다익스트라의 기본적인 문제https://www.acmicpc.net/problem/4485 전역 변수n : 각 테스트 케이스마다 주어지는 맵의 한 변의 길이lst : 각 테스트 케이스마다 주어지는 맵 정보를 저장할 2차원 정수 배열, 최대크기는 125*125다.dx, dy : 상하좌우 4방향을 탐색하기 위한 방향 배열Pos : 우선순위 큐에서 현재 위치 정보를 나타낼 구조체, w를 기준으로 오름차순 정렬한다. 함수1. dijkstraint dijkstra() 다익스트라를 통해 출발지에서 도착지까지의 최단 거리를 구하는 함수Pos타입 우선순위 큐 pq를 초기화 하고 거기에 시작 지점 x, y좌표와 시작 지점의 값을 넣어준다.n * n크기의 2차원 정수형 벡터 dist를 기본값을 매우 크게 지정..

[G2] 백준 2871번 아름다운 단어 C++ 그리디 알고리즘, 우선순위 큐, 구현

리뷰 그리디한 방법을 설계하여 알아서 문제를 푸는 구현문제인듯 하다.https://www.acmicpc.net/problem/2871 전역 변수n : 주어진 문자열의 길이v : 현재 상황에서 문자열이 존재하는지 체크하기 위한 배열 크기는 최대 문자열 크기인 10만으로 초기화 한다.s, t1, t2 : 입력되는 초기 문자열 s, 상근이의 문자열 t1, 희원이의 문자열 t2Prio : 원하는 단어를 얻기 위한 우선순위 큐용 구조체pq : 희열이가 사용할 우선순위 큐, 문자 기준 오름차순, 같다면 인덱스 기준 내림차순 정렬을 하였다. 함수없음  문제풀이n과 s값을 입력받은 뒤 0부터 n - 1까지 순회해준다.v배열을 모두 1로 변경해 주고 pq에는 문자와 해당 문자의 인덱스를 추가해 준다.상근이가 문자열을 가..

리눅스 소켓 프로그래밍 Linux socket programming

개요서버와 클라이언트는 동작이 다르다.서버 : 클라이언트가 접속할 수 있도록 준비(Port, IP), 그리고 클라이언트의 연결을 기다린다.클라이언트 : 서버의 IP와 Port를 이용해 접속하며, 연결이 되었을 경우 동작을 한다.  서버클라이언트IP서버 소켓이 동작하는 컴퓨터의 IP 주소통신을 원하는 원격지 PC의 IP 주소Port소켓이 “위치 할” 포트 번호소켓이 “위치한” 포트 번호  TCP 기반 서버 소켓 동작 순서는 다음과 같다.socket() 소켓 생성bind() 소켓에 주소 할당listen() 클라이언트 연결 요청 대기accept() 클라이언트 연결 승인read() / write() 통신close() 소켓 닫기 TCP 기반 클라이언트 소켓 동작 순서는 다음과 같다.socket() 소켓 생성con..

리눅스 소켓 통신 Linux socket

개요Socket을 이용해 서버-클라이언트 간 데이터를 주고 받는 양방향 연결 지향성 통신을 말한다. Socket을 이용해 PC 와 PC 끼리 데이터를 주고 받을때 TCP/IP프로토콜을 사용하여 통신한다.한쪽은 서버이고 나머지 한 쪽은 클라이언트가 되며 통신 방식은 Full-Duplex이다.두 PC는 네트워크로 연결 되어 있어야 한다.  SocketTCP/IP 기반 네트워크 통신에서 데이터 송수신의 마지막 접점이다.데이터가 통과하는 마지막 관문 전기 소켓을 예로 든다면 발전소에서 생성한 전기가 가정으로 도착한 마지막 접점으로 볼 수 있다.소켓의 내부구조는 어떻게 이루어져 있는지 자세히 모르지만, 콘센트를 꽂으면 전기를 쓸 수 있다. 소켓은 인터페이스이다, Socket이라는 소프트웨어 인터페이스가 존재하며,..

[G2] 백준 13334번 철로 C++ 우선순위 큐, 정렬, 스위핑

리뷰 우선순위 큐 문제는 풀어도 풀어도 어려운 것 같다 ㅠㅠhttps://www.acmicpc.net/problem/13334 전역 변수n, d, ans : 사람의 수 n, 철로의 길이 d, 구간에 포함되는 사람의 최대 수를 저장할 변수 ansnums : 집과 사무실의 좌표를 저장할 pair타입 배열, 크기는 10만으로 초기화 한다. 함수없음  문제풀이n값을 입력 받고 nums배열에 집과 사무실 위치를 입력 받아준다.s보다 e가 크다면 두 수를 바꿔주고, 도착 시간을 기준으로 오름차순 정렬을 할 것이기 때문에 e, s순으로 저장한다.sort메서드를 통해 nums배열을 0부터 n - 1인덱스를 오름차순으로 정렬해 준다.정수형 타입의 우선순위 큐 pq를 초기화 해주고 오름차순으로 우선 정렬한다.d값을 입력 ..

728x90
반응형