본문 바로가기

분류 전체보기337

[백준 1926/c++] 그림 BFS 의 대표 기본 문제 칠해졌는지 아닌지를 판단하기 위해 2차원 보드에 값을 넣어 확인하고 이전에 방문 여부를 위해 보드 크기만큼의 visited 배열을 만들어 확인, 이동 가능 하다면 그 좌표를 큐에 넣고, 방문제크 한 후 큐에서 좌표를 하나씩 빼가며, 뺀 것을 체크할 현재 좌표라 하고, 현재 좌표에 이동가능한 상하좌우 범위를 2개의 배열을 사용해서 이동 후의 4개의 좌표 값을 구현, 이동 후의 좌표 값이 범위 밖이거나, 칠해지지 않았는지의 예외 조건이 아니라면 그 예상 좌표를 방문처리하고 큐에 넣어 계속 진행해나간다 그림의 수는 전체 2차원 보드를 이중 for문으로 하나씩 돌며, 칠해졌는데 방문하지 않은 것들을 위의 과정으로 체크해나가면서 파악하면 된다. 칠해진 영역의 수는 BFS 중에 큐에 들어.. 2022. 8. 7.
[백준 1406/c++] 에디터 임의의 위치에 삽입과 삭제가 잦은 경우, 시간복잡도 상의 이득을 위해 연결 리스트의 자료구조를 생각해보아야 한다 연결리스트는 양 끝을 제외하고는 이전 주소 값과 다음 주소 값을 가지는 노드를 가진 구조이다 C++ 의 STL list 를 이용해서 풀면 상대적으로 구현이 편하다 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.. 2022. 8. 6.
readline 한 줄 씩 입력 받기 언어마다 코딩테스트의 입출력시에 자주 쓰이는 것들이 있다 input, cin, scanf, getline 등등 각각 공백을 기준으로나 줄을 기준으로 입력을 받는다 자바스크립트도 공백을 기준으로 한 input 이 있지만 줄단위로 입력을 받는 readline 모듈이 존재한다 자바스크립트의 내 내장 모듈로서 readable 스트림에서 rereadline 모듈을 이해해보자 기본 형태는 아래와 같다 const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line)=>{ /*입력 받는 값을 처리하는 코드*/ rl.clos.. 2022. 8. 6.
var 와 let, const 의 호이스팅 차이 자바스크립트의 변수에는 호이스팅이란 개념이 있다 컴파일 시 따로 변수를 저장해서 저장해두고, 실행 시 함수 내에서 변수가 아래나 중간에 있어도 저장한 걸 꺼내와 변수가 함수의 최상단에서 이미 선언된 것처럼 사용되는 것을 말한다 문제는 선언만 암시적으로 올라가고 할당은 그대로 제 위치에서 작동한다는 것이다 ++ 충격적이게도 for문의 조건문에서 선언한 변수 i 마저도 호이스팅 되어서 for문이 끝나도 변수 i 가 남게된다! console.log(x); // var 변수가 호이스팅에 의해 최상위로 선언만! 되어서 undefined 가 뜬다 var x = 3; 호이스팅의 개념이 없는 다른 언어의 경우, 변수 선언 전에 호출을 하면 컴파일 시 레퍼런스 에러가 뜨지만, 아주 개념 충만하신 자바스크립트님은 아래에 .. 2022. 8. 5.