[백준] 11779 최소 비용 구하기2(C++)
·
Algorithm/Solution
11779번: 최소비용 구하기 2 (acmicpc.net) 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 난이도 : 골드 3 풀이 방법 : 다익스트라를 이용하는 문제 경로를 출력하는 것이 관건이었다... 경로를 출력하는 방법을 도시 개수만큼 배열(route)을 선언해 주고 다익스트라에서 dist(비용) 이 업데이트 될 때, 업데이트 되는 next인덱스에 전 노드 here 값을 저장 시켜준다. 그러면 route배열의 각 인덱스에는 인덱스 전의 노드의 인덱스 가 저장 되어 있는 것..
[백준] 1005번 ACM Craft(C++)
·
Algorithm/Solution
1005번: ACM Craft (acmicpc.net) 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 난이도 : 골드 3 풀이 방법 : 위상정렬 + dp 문제 ans라는 배열에 각 건물 시간 걸리는거 저장해놓고 위상정렬 돌릴 때 특정건물을 짓기위한 시간 = 건물을 짓기위해 지어야 되는 건물 중 가장 오래걸리는 시간 + 특정건물 걸리는 시간 if (ans[now] + time[next] > ans[next]) { ans[next] = ans[now] + time[next]; } 을 해주면 된다. + 58..
[백준] 2589번 보물섬 (C++)
·
Algorithm/Solution
https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 난이도 : 골드5 풀이 방법 : 가로 세로가 최대 50이기 때문에 전체를 돌아도 될거같아서 각 인덱스 별로 bfs를 돌려서 최댓값을 찾아줬다. 맨처음에 50퍼정도에서 에러가 나서 반례를 찾아봤는데 시작점을 두번 방문하는 오류가 있음을 알게 됐다. 시작점을 1부터 시작해서 나중에 ans-1을 빼주면 해결 코드 : #include #include #include using namespace std; in..
[React] React 완벽 가이드 섹션 10 : Reducer을 사용하여 부작용처리& Context API 사용하기
·
Frontend/Study
https://www.udemy.com/course/best-react/ 【한글자막】 React 완벽 가이드 with Redux, Next.js, TypeScript Javascript부터 웹 어플리케이션 배포까지, React와 프론트엔드 최신 기술을 가장 쉽고 확실하게 배우는 법 www.udemy.com 1. Side Effect란? - 애플리케이션에서 일어나는 모든 것 - 리액트에서는 state값이 변하는 등의 작업이 일어날 때 리렌더링 됨 - 만약 사이드 이펙트가 계속 리액트에 관여하게 된다면 무한 루프에 빠질 가능성이 크다. - 이것을 해결하기 위한 방법으로 useEffect 가 있다. 1) useEffect : 컴포넌트가 렌더링 될 때마다 특정 작업을 실행할 수 있도록 하는 hook useEff..
[Algorithm] 순열/중복 순열 알고리즘 구현 (C++)
·
Algorithm/Study
1. 순열 1. swap을 이용한 재귀함수 구현 => 사전순 출력x #include #include #include using namespace std; int n; vector v(10); void permutation(int s, int e) { if (s == e) { for (int i = 0; i < n; i++) { cout
[백준] 1946 신입사원(C++)
·
Algorithm/Solution
1946번: 신입 사원 (acmicpc.net) 난이도 : 실버 1 풀이 방법 : 문제가 살짝 헷갈렸긴했는데 문제의 의미는 한 사람의 서류등수와 면접등수가 어떠한 다른 사람의 두 등수에 둘 다 지면 안된다는 뜻 머튼 해결방법 pair배열을 선언하여, 서류랑 면접점수를 담게 하고, 서류점수를 기준으로 배열을 sort를 한 다음 면접점수에서 배열 순서대로 arr[i] < arr[i+1] 이면 i+1 의 인덱스를 가진 배열이 둘다 점수가 졌다는 의미이므로 cnt변수에 1씩더해준다. 답은 n-cnt를 출력하면 끝! 이제 n이 십만개고 시간제한이 2초이므로 nlogn이하로 풀어야 되는 문제였음 (n제곱이면 시간초과임 !) 코드 : #include #include using namespace std; int t, ..
[React] React 완벽 가이드 섹션 9 : 프레그먼트 작업, Portals & Ref
·
Frontend/Study
https://www.udemy.com/course/best-react/ 1. jsx 제한 사항 및 해결 방법 - 루트 요소는 1개여야만 한다 - 그 이유는 자바스크립트 자체가 원래 하나의 요소만 반환하기 때문 // 자바스크립트에서 아래 문법은 불가능 하다 return ( React.createElement('h2',{}, 'hi'); React.createElement('h2',{}, 'hi'); ); 1) 해결 방법 ⓐ 여러개의 요소를 하나의 태그(아무태그)로 감싼다. => div soup 발생, 불필요한 렌더링 과정 실행 * div soup : div태그가 중첩되어 스타일링이 깨질 수도 있고, 속도가 느려질 수도 있다. ⓑ 배열형태로 반환한다. => 경고 발생 키가 필요하기 때문 그래서 이상적인 해..
[React] React 완벽 가이드 섹션 6 : 리액트 컴포넌트 스타일링
·
Frontend/Study
https://www.udemy.com/course/best-react/ * css 파일로 빼서 jsx파일에 import하는 방식 : 파일 내 모든 컴포넌트 요소에 영향을 미침 1. 동적 스타일 1) 인라인 스타일 hi - 라벨의 색상을 state 값에 따라서 동적으로 적용 가능 - 인라인 style은 최우선순위기 때문에 css파일을 오버라이드 함 2) css 클래스 .className1.className2 { color: black; } - 템플릿 리터럴을 이용하여 동적으로 클래스 이름 추가 가능 - css 파일에서 클래스 이름에 따른 css를 설정해주면됨 2. styled components - 컴포넌트 별 스타일을 지정할 수 있는 패키지 npm install --save styled-componen..
[백준] 7576 7569 토마토(C++)
·
Algorithm/Solution
7576번: 토마토 (acmicpc.net) 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net https://www.acmicpc.net/problem/7569 난이도 : 골드 5 해결 방법 : 굉장히 오래 걸렸던 문제.... 일단 배열 입력자체가 보통은 가로, 세로 를 주는데 세로 가로 수를 줘서 반대로 입력을 해주면 좀더 편하게 풀 수 있다. (이것도 시간 오지게 잡아먹힘 헷갈려서) 뭐튼 bfs로 푸는문제인데 처음에 접근을 잘못해서 연결요소의 개수로 접근해 풀었다가 1시간 날렸다 이제 토마토..