Dreaming developer

예비 개발자를 꿈꾸는 서연이의 기록일지

Together, Tomorrow

전체 글 96

[알고리즘] 방향 그래프에서 사이클 찾기

DFS 활용 DFS 에서 사이클을 탐지하기 위해서는 탐색 과정 중에 back edge( 부모 노드 중 하나를 가리키는 노드 ) 가 있는지 확인하면 된다. = 이미 방문 했던 노드를 또 재방문하게 되는지 검사한다. 이를 위해서는 다음 두가지 정보를 저장해야한다. 1) 현재까지 방문한 전체 정점 목록 -> visited 배열 2) 현재 호출까지 방문한 정점 목록 -> rsStack 배열 위 그림은 0->1->2->3 까지 차례로 방문하고 2로 돌아와서 다음 노드인 0을 방문하려고 하는 상황이다. 이처럼 dfs 재귀를 수행하다가 인접한 노드가 recStack에 이미 마크되어 있다면(true) 이미 여태까지의 경로에서 방문했던 노드를 다시 방문하고 있는 것이므로 사이클이 존재하고 있다고 판단할 수 있다. vec..

Algorithm 2024.01.31

[Zeje] 개인정보 처리방침

이용약관 제 1장 총칙 제 1조 (목적) ZEJE 이용약관(이하 ‘본 약관’이라 함)은 ZEJE 어플리케이션(이하 ‘ZEJE 앱’이라 함)을 통하여 제공하는 서비스(아래에서 정의함)를 이용함에 있어 회원(아래에서 정의함)과 당사 간의 권리, 의무 및 책임사항, 서비스 이용조건 및 절차 등 기본적인 사항을 규정함을 목적으로 합니다. 제 2조 (용어의 정의) 본 약관에서 사용하는 용어의 정의는 다음과 같습니다. 서비스 : 회사가 운영 및 관리하는 ZEJE 앱을 통하여 제주 콘텐츠기반 정보 등을 직접 제공하거나, 다른 사이트로 접속할 수 있도록 하는 연결화면, 배너 등을 제공하는 모바일 앱(App)서비스를 말합니다. 회원 : ZEJE 앱에 접속하여 본 약관에 동의하고, 회사에 개인정보를 제공하여 서비스를 제공..

카테고리 없음 2023.02.10

[백준] 15683번 감시

15683번: 감시 (acmicpc.net) 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net [ 문제 ] 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. CTV는 감시할 수 있는 방향에 있는 칸 전체를 감시할 수 있다. 사무실에는 벽이 있는데, CCTV는 벽을 통과할 수 없다. CCTV가 감시할 수 없는 영역은..

[전국 대학생 연합 게임제작 해커톤] UNIJAM TF 회고록 📑

안녕하세요! 😊 오늘은 2023 01.06 - 01.08 까지 총 3일간 진행되었던 유니잼 회고록을 써보려고 합니다아~ ✨ 때는 바야흐로 …. 🤔 11월 후반즈음?! UPnL 회장님께 연합 게임잼을 개최해보면 어떻겠냐는 제안 연락을 전달 받았다! 사실 처음에는 메이킹잼이라는 큰 해커톤을 진행한 지 얼마 안되어서 또 해커톤을 주최하면 동아리 내부적으로는 기대한만큼 참여율이 나오지 않을수도 있다고 생각해서 고민을 많이 했었다 .. !! 🥲 그러나 주변 친구들의 의견을 여쭤보니, 굉장히 호의적인 반응을 보여주는 친구들이 대부분이었고 꼭 진행되었으면 좋겠다라고 말해주는 친구들도 있었다 !!!! KING을 세상에 알리고 외부 동아리와 교류관계도 늘릴 수 있는 너무 좋은 기회라는 생각이 들었기 때문에, 12.3 일..

카테고리 없음 2023.01.23

[백준 23632번] 쿠키런 킹덤

https://www.acmicpc.net/problem/23632 23632번: 쿠키런 킹덤 내 친구 용감한 쿠키가 고민에 빠졌다고 한다. 용감한 쿠키는 요즘 쿠키런 킹덤이라는 게임을 하는데, 이 게임에서는 $1, 2, \cdots, N$의 번호로 구분되는 $N$가지 종류의 자원 중 일부를 이용하여 www.acmicpc.net [문제] 처음에 문제를 잘못 봐서 이게 어떻게 가능하지 하고 끙끙 헤맸던 문제 ㅜㅜ - N개의 자원/건물 - M개의 이미지어진 건물 - 건물마다 특정 자원 생산 - 건물을 짓기 위해서는 자원 필요 => 제한시간 T동안 지을 수 있는 건물의 개수와 목록 출력 본 문제를 한마디로 요약하면 다음과 같다. 건물 -> 자원 -> 건물 : 이미 지어진 건물은 자원을 생성하고, 필요한 자원이..

[백준] 17503번 맥주축제

https://www.acmicpc.net/problem/17503 17503번: 맥주 축제 첫 번째 줄에 축제가 열리는 기간 N (1 ≤ N ≤ 200,000) 과, 채워야 하는 선호도의 합 M (1 ≤ M level) { break; } possibles.push_back(beers[i].first); } if (possibles.size() < n) { return -1; } // 상위 n개의 선호도 합 계산 sort(possibles.begin(), possibles.end(), greater()); // 내림차순 정렬 ll sum = 0; // 선호도 합 for (int i = 0; i < n; i++) { sum += possibles[i]; } return sum; } ll binarySea..

[프로그래머스] 양궁 대회

https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제] [해결전략] [풀이] #include #include using namespace std; int maxDiff=0; //최대 점수차 // 현재 경우가 answer보다 더 작은 점수에 맞춘 화살수가 많다면 true int compare (vector ryan,vector &answer){ for(int i=10;i>=0;i--){ if(ryan[i]>answer[i]){ return tr..

카테고리 없음 2022.09.25

[백준] 2110번 공유기 설치

https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net [문제] 문제 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 ..

카테고리 없음 2022.09.25

[백준 14503번] 로봇 청소기 (EPER 기

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net [문제] [해결전략] [풀이] #include #include #include using namespace std; // 북 동 남 서 int dr[4] = { -1,0,1,0, }; int dc[4] = { 0,1 ,0, -1,}; //d : 0 북 //d : 1 동 //d : 2 남 //d : 3 서 int n, m; int simulate(vector board,int r,int c,int..

[백준 5397번] 키로거

https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net [문제] [해결전략] [풀이] 1. 첫번째 시도 -> 시간초과 : left 와 right에서 각각 왼쪽,오른쪽 문자열을 빼내어 합치는 방식으로 코드를 작성하니 시간초과가 발생했다. #include #include #include using namespace std; string combine(stack left, stack right) { string str = ""; while (!lef..