본문 바로가기

분류 전체보기88

Webpack, Babel, Polyfill 이것들은 리액트, express js, typescript 기반인 3차 프로젝트 진행할 때 알게 모르게 썼었던 거다. 리액트랑 타입스크립트 깔면 자연스럽게 들어가있는 느낌으로 알고 있었는데 이참에 정리하면 좋을 것 같아서 써본다. Saas loader를 설치했을 때 높은 webpack버전이 npm에 새롭게 설치되어서 react에서 default로 설치되어있던 webpack 4.xx버전과 충돌이 났었던 기억이 있다. Polyfill: 브라우저가 지원하지 않는 자바스크립트 문법을 지원 가능하도록 변환한 코드 (ex. type script를 js로 변환, ES 6 에서 도입된 함수를 ES 5만 지원하는 브라우저에서 사용할 수 있게끔 ES 5문법을 이용해서 함수를 만들어주는 것) 자바로 설명하자면 만약에 17버.. 2024. 4. 7.
백준 14888번 재귀로 풀었다. 어차피 n의 최대 수는 11이고 연산자의 최대는 10, 즉 2 3 2 3 으로 나오고 처음으로 나오는 0이 가장 적을 때니까 2323 = 4 2223 = 4 2222 = 4 1222 = 4 1122 = 4 1112 = 4 1111 = 4 0111 = 3 0011 = 2 0001 = 1 0000 = 1 으로 나오는 경우의 수는 98304인 것 같다. 단순하게 4의 11승으로 계산해도 백만 대에서 멈추기 때문에 상관없다. 그냥 재귀 돌려도 된다. 아이디어는 다음과 같다. 1. 재귀를 이용해서 푼다. (base case는 depth가 nums 배열의 length -1과 같을 때, or 수식 배열의 모든 원소가 0일때), 즉 모든 원소에 대한 식을 끝마쳤을 때 2. 수식의 개수를 배열에 넣는다고.. 2024. 4. 3.
백준 10971 동적 계획법으로 풀 수 있다는데 아직 안배웠다. 그래서 재귀(백트래킹)로 풀었다. 어차피 n 수가 적기 때문에 1. 하나하나의 순열을 모두 구하고 2. 거쳐간 order의 비용이 모두 0이 아닌 경우에 3. answer와 비교를 통해서 답을 업데이트한다. 풀고 나서 생각난건데 visited[]에서 if문을 걸 때 &&을 활용해서 비용 조건도 그때 확인했다면 더 좋았을 것 같다. package programers; import java.util.Arrays; import java.util.Scanner; public class BOJ10971 { static int[][] graph; static boolean[] visited; static int answer = Integer.MAX_VALUE; sta.. 2024. 4. 2.
프로그래머스 - 석유시추 구현 1차 절망, 시간복잡도 2차 절망이었다. 처음에는 그냥 bfs + visited로 해서 열마다 방문 횟수 초기화를 해주면서 계속 돌렸는데, 정답은 구할 수 있지만 효율성 테스트에서 전부 시간 초과가 나왔다. 그래서 생각한 건 방문 횟수 초기화를 하지 말고 모든 그래프를 돌며 수행한 bfs의 결과를 배열로 만들어서 [left, right, count] 전체 열을 돌면서 이중 배열을 만들어주고 전체 열만 돌면서 left = col 인 경우 count++ 를 해주고 나온 값의 max를 리턴해줬다. 이렇게 하니까 시간복잡도는 줄일 수 있었는데 문제 2,3 번에서는 시간초과가 나왔다. 그러다가 생각난 게 굳이 배열을 만들어서 for문을 돌릴 필요 없이 저 배열 하나를 add 하는 대신 처음에 전체 열의 co.. 2024. 3. 25.
백준 2573번 bfs 배우니까 신세계가 따로 없다. 뭐 말로는 dfs로 풀 수 있는 건 bfs로 풀 수 있는데 bfs로 풀 수 없는 건 dfs로 풀 수 없다니까 bfs라도 잘 알아놓고 가자. 일단 그래프를 만든다. 하지만 여기는 동서남북 모든 노드의 정보를 알아야 하기 때문에 테두리를 둘러줘야한다. 그래서 그래프의 넓이를 n+1이 아닌 n+2로 만들어준다. why? 1에서 n까지가 행과 열의 넓이라고 가정해보자 1 1 1 1 1 1 1 1 1 11 11 1 1 1 1 11 1 1 1 1 1 1 1 111 1 1 1 1 1 1 1이 들어가있는 노드가 그래프의 시작이라고 가정하자. 시간의 흐름을 옆 노드를 기준으로 반영하기 위해서는 위, 아래, 좌, 우 노드가 모두 있어야만 한다. (그렇지 않다면 첫 번째 인덱스를 돌다가.. 2024. 3. 24.
[포스코x코딩온] 풀스택 부트캠프 4차 프로젝트 -7 메소드 뿐 아니라 필터에서 걸려서 예외처리가 되는 경우에는 내가 만든 예외처리가 적용되지 않고 default response인 403에러에 body에 아무것도 주지 않았다. 물론 이렇게 보내면서도 충분히 할 수 있지만 프론트 분들이 불편할 것 같아서 필터도 에러 리스폰스를 넣는 게 좋겠다는 생각이 들었다. 그래서 구글링 해서 찾아보니까 필터단에서는 따로 처리를 해줘야 하고, response 객체에 setStatus()와 getWriter().write() 메소드로 필터 단에서 body를 응답할 수 있다는 블로그를 보았다. https://blog.naver.com/PostView.naver?blogId=qjawnswkd&logNo=222303565093&parentCategoryNo=&categoryNo=.. 2024. 3. 22.