16198번: 에너지 모으기 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있 www.acmicpc.net 풀이 배열로 수를 저장하고 선택한 수에 대해선 visited = false로 처리하여 백트래킹으로 진행한다. 시행착오 처음에 백트래킹 수행하는 method의 인자를 고른 수로 했다. 이렇게 되면 left, right가 linear하게 선택되서 답이 제대로 안나왔다. for문 안에 넣어야 하는데 어떻게 바꿀지 모르겠어서 결국 솔루션을 참고했다. method의 인자는 n과 m 문제처럼 depth를 인자로 넣고, depth가 N-2가 되었을 때 max값인지 아닌지..
3019번: 테트리스 테트리스는 C열 필드위에서 플레이하는 유명한 게임이다. 필드의 행의 수는 무한하다. 한 번 움직일 때, 아래와 같은 일곱가지 블록 중 하나를 필드에 떨어뜨릴 수 있다. 블록을 떨어뜨리기 전에 www.acmicpc.net 풀이 문제 그대로 정직하게 구현하면 되는 문제! 블록 모양을 어떻게 판단할지가 가장 큰 고민이었다. 배열? 리스트? 그림 그려서 수동으로 해보니 바닥면 높낮이를 체크하면 됨을 알 수 있었다. 각 테트리스 블록별로 회전했을때 나올 수 있는 가능한 모양을 모두 저장할 수 있는 ArrayList 을 만들고, 처음 입력받은 모양 번호로 초기화되게 했다. (getBlockShape()) 블록 모양에 따라 올라와야 하는 바닥면의 높이를 저장했다. 그리고 바닥면에 대해 블록을 끝..
1219번: 오민식의 고민 첫째 줄에 도착 도시에 도착할 때, 가지고 있는 돈의 액수의 최댓값을 출력한다. 만약 오민식이 도착 도시에 도착하는 것이 불가능할 때는 "gg"를 출력한다. 그리고, 오민식이 도착 도시에 도착 www.acmicpc.net 풀이 이해가 안됐는데 이 블로그를 참고하여 겨우 이해할 수 있었다... 벨만-포드를 이렇게도 풀 수 있구나 했던 문제 특이하게 negative cycle이 아닌 positive cycle을 찾는 문제이다. 일반적인 벨만-포드는 N-1까지 최단 경로를 갱신한 후 마지막으로 한번 더 돌아다니면서 사이클 여부를 판정한다. 하지만 이 문제에선 사이클이 있는지 검사 뿐만 아니라 시작 지점부터 도착 지점까지의 경로가 있는지도 알아야 한다. 따라서 충분한 edge rela..
16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net 풀이 혼자 일부러 더럽고 어렵게 푼 느낌? 🙄 암튼 오래걸림 문제에 나온 그대로 시뮬레이션 문제 풀듯 풀었다. 짜잘짜잘한 조건들이 많아서 테케 넣어보고 수정하고 하다보니 푸는데 오래걸렸다.. 고민거리와 삽질의 흔적들 두 동전은 어떻게 동시에 움직이지? 일차원 배열을 생성해서 반복문으로 변수 값을 할당했다. 0
9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 풀이 처음에 사이클 체크를 어떻게 해야 하는지 엄청 고민했다... 결국 구글링하여 솔루션들을 참고했다 ㅠ 내가 시도하려는 풀이에선 방문체크 배열이 두 개가 필요함을 알 수 있었다. 방문 체크를 할 배열, 완전히 방문이 끝났음을 알리는 배열 두 개의 visited를 확인할 배열이 필요 visited[n] = false: 아직 방문안한 곳이므로 DFS 다음 탐색 node는 n visited[n] = true & finished[n] = false 방문은 했으나 완전히 방..
1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 풀이 벨만-포드 알고리즘을 몰라서 구글링하며 풀이ㅠ 알고리즘 이해에 참고한 글 👍🏻👍🏻👍🏻 코드 작성에 참고한 글 벨만포드 알고리즘이란? 최단 경로를 찾는 알고리즘 중 하나 가중치가 음수일 경우 다익스트라 알고리즘을 사용하면 무한 루프에 빠지게 된다. 따라서 음수 가중치를 다룰 수 있는 벨만-포드 알고리즘을 사용해야 한다. 간단한 원리는 다음과 같다. 노드 수를 V라 하면 시작점에 대해 최대 연결된 간선 개수는 V-1개이다. 시작점을 기준으로 V-1..
Asynchronous setState()는 비동기 (asynchronous)로 작동한다. 그 말은 즉슨 setState로 변경한 state값은 즉시 적용되지 않는다는 뜻이다. vscode에서 마우스 커서를 올려보면 다음과 같이 callback이 있음을 알 수 있다. 예시를 위해 버튼을 누르면 카운트를 1씩 증가시키는 코드를 작성해보면 다음과 같다. // index.js ReactDOM.render( , document.getElementById('root') ); // App.js class App extends Component { constructor(props) { super(props); this.state = { count: 30 + this.props.increment, }; } handle..
render() 함수에서 JSX element 리턴 시 handleChange 속성 부분에 바로 함수를 구현하면 this.setState()를 사용함에 있어 문제가 되지 않는다. 하지만 class 함수로 빼게 되면 this keyword를 인식하지 못한다. 이때 constructor()에서 context를 binding 시켜주는 방법도 있지만 arrow function을 사용하면 별도의 binding 없이 사용 가능하다. 그냥 썼을 경우 this.setState({ searchField: e.target.value })} /> 일반 method로 구현 constructor() { super(); ... this.handleChange = this.handleChange.bind(this); } handl..
- Total
- Today
- Yesterday
- 우선순위큐
- dfs
- BFS
- 시뮬레이션
- matches
- 브루트포스
- 문자열
- dp
- form
- vue.js
- 정규식
- regex
- Validation
- 벨만포드
- 백준
- 해시
- 백트래킹
- CustomHook
- 그래프
- 다익스트라
- 구현
- REACT
- 삼성역테기출
- 알고리즘
- 이분탐색
- BigInteger
- java
- web
- 프로그래머스
- swea
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |