자료구조 & 알고리즘/백준(Baekjoon)

[백준] 1987(파이썬) - 알파벳

https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 이 문제는 보고 이 문제야말로 DFS를 이용하는 문제다 라고 생각했다. 근데 생각해보니까 BFS로도 풀 수 있다ㅎㅎ 여기서 중요한점은 맨 처음에 리스트를 하나만들어서 알파벳이 사용됐을 경우 리스트에 넣어서 만약에 DFS함수안에서 다음 탐색 x,y좌표에 리스트에 있는 알파벳이 없을 경우 DFS 재귀를 돌렸는데 이렇게 하니까 시간초과가 발생하였다. 생각한 방법은 알파벳을 아스키코드를 이용해서 ..

2021.07.25 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준]11048(파이썬) - 이동하기

https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 나는 알고리즘을 풀 때 거의 입력값이 2차원 배열이면 그래프 아니면 DFS/BFS 일거야 라고 생각을 한 후에 문제를 푸는 안좋은 습관이 있었는데 이 문제를 풀면서 통수를 제대로 맞았다. DFS라고 생각하고 문제를 풀었고 테스트 케이스도 많이 넣어봐서 정답임을 확신했지만 n,m이 1000이면 N^2만 되도 100000번의 경우의 수가 생겨버리니까 당연히 시간초과가 발생하는 문제였다...

2021.07.24 게시됨

Language/Javascript

[javascript 자바스크립트] 모듈(Module) 란?

모듈(Module)이란? 모듈이란 특정한 기능을 하는 함수나 변수들의 집합이다. 예를 들면 수학에 관련된 코드들만 모아서 수학 모듈을 만들어서 수학에 관련된 기능이 필요할 때 꺼내서 사용할 수 있다. 모듈은 자체만으로도 하나의 프로그램이면서 다른 프로그램의 부품으로 사용할 수 있다. 즉, 모듈로 만들어놓으면 여러 프로그램에서 해당 모듈을 재사용할 수 있다. 보통 파일 하나가 모듈 하나가 된다. 파일별로 모드를 모듈화 할 수 있어서 관리하게 편하다. 그러면 아래 예시를 보면서 이해해보자. 같은 폴더에 var.js , func.js , index.js 가 있다고 가정하자. //var.js const odd = "홀수"; const even = "짝수"; module.exports = { odd,even };..

2021.07.23 게시됨

Language/Javascript

[javascript 자바스크립트] async/await 란?

저번 게시물에서는 자바스크립트 난제였던 콜백 지옥을 해결한 프로미스(Promise)에 대해서 알아보았다. 이번 시간에는 자바스크립트의 비동기 처리과정에서 사용되는 async/await 기능에 대해서 알아보려고 한다. async / await 란? 먼저 async / await 란 비동기 처리 패턴 중 하나이다. 비동기 처리 패턴 중에서 프로미스가 콜백 지옥을 해결했다지만 여전히 코드가 길어서 읽기 좋은 코드라고 할 수는 없다. then과 catch가 계속 반복되기 때문이다. async / await 문법은 기존의 비동기 처리 방식인 콜백 함수와 프로미스의 단점을 보완하고 프로미스를 사용한 코드를 한 번 더 깔끔하게 줄일 수 있다. async / await 기본 문법 async function 함수명() ..

2021.07.22 게시됨