전체 글(35)
-
백준 7576 토마토
처음 나름대로 풀어본 풀이(시간초과) - 준비 캐시 2개(하루 전날 토마토판 상태 기억, 하루 지나고 토마토판 상태 기억) - 진행(아래 순서 반복) 토마토 1일 동안 익히기 -> 캐시에 저장 -> 캐시에 저장된것을 다시 다른캐시에 복사 const input = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n"); const keys = input .shift() .split(" ") .map((v) => parseInt(v)); const col = keys[0]; const row = keys[1]; const x = [0, 0, 1, -1]; const y = [1, -1, 0, 0]; let day = 0; cons..
2021.10.22 -
백준 단지 번호 붙이기
안풀리면 다른사람 코드를 보자! 이 문제는 전형적인 DFS 문제인것 같았다. 그렇게 처음부터 감을 잡고 접근했고, 25 아래라는 숫자제한을 무시하고 재귀가 싫다!! 고 하면서 캐시를 만들고 시작했다. 문제에서 주어진 input 된 cache 와 내가 별도로 만든 cache 를 2개를 비교하면서 스택까지 별도로 만들어서 코드를 작성하다 보니 더 복잡해지고 잘 안풀렸다. 그리고 나름의 풀이를 만들었고, 분명히 dfs 가 잘 작동하고 있고, 답도 잘 나오고, 반례도 넣을만한거 다 넣어서 이상없는 것 같은데 채점결과 답이 틀렸다고 떠서 힘들었던 문제였다. 그냥 모든 경우의 수를 다 떄려넣는 재귀 방식으로 다시 접근해서 결국 맞추긴 했다. 이 과정에서 다른분이 풀은 문제 풀이를 참고했고, 더 쉽고 짧은 코드로 풀..
2021.10.18 -
안다르 홈페이지 클론코딩 후기(리팩토링 전)
나 포함 5인 팀으로 안다르 (https://andar.co.kr/) 를 2주간 클론코딩을 해보았다. 결론 힘들지만 재미있다? 모르는것을 알아가는 재미, 바로바로 적용하는 재미, 소통하면서 서로 공유하는 재미 멘토님이 알려주는거 적용해보기 - 꿀잼 - 단순하게 쉽게 누가 봐도 알아볼수 있게 만들어보자! 1. 구현기능 1) 로그인, 회원가입 2) 장바구니 3) 상품리스트 출력, 검색 4) 상품 고르기 -> 장바구니에 담기(저장) 5) 옵션별 케로셀, 추천상품 케로셀 2. 내가 맡은 기능 1) 프론트 엔드 : 로그인, 회원가입, 장바구니 2) 백엔드 : 상품 디테일 출력 3. 느낀점 1) 소통의 중요성 - 깃 허브로 다른사람 코드를 보고 리뷰하고, 받으면서 코드 수정을 반복 - 소통하면서 효율적으로 작업 함..
2021.10.17 -
바이러스 백준
시간초과 또는 메모리 초과로 풀지 못한 문제 문제는 bfs 방식으로 방문하고 횟수를 적어주면 된다. 일단 bfs 로 풀수 있게 먼저 그래프 형태를 만들어 주고 stack을 만들어서 스택에서 pop 하는 방식으로 접근했다가 메모리초과가 떳다. stack 을 콘솔에 로그를 찍어보니 중복되는 값이 계속 들어가는것을 확인하고 중복되면 넣지 않도록 로직을 추가해줬다. 그러니 시간초과.... 조금 더 해보다가 곧장 구글링 해보니... nodejs로 같은 문제를 겪고 있는 사람이 많이 보였고, 해결방법은 검색되지 않았다. 그래서.. 나도 ...아직 미해결 문제... const [n, k, ...i] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .s..
2021.10.07 -
백준 ATM
합의 합을 구하는 문제이다. 합이 작을 수록 합의 합도 작아진다. 그러므로 오름차순 정렬 후 합의 합을 reduce 로 구해주면 쉽게 해결할 수 있다. 이 문제는 어려운 단계로 가기 전 몸풀기 느낌이 난다.. const [k, ...i] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n"); const key = parseInt(k); const input = i[0].split(" ").map((v) => parseInt(v)); input.sort((a, b) => a - b); const dp = new Array(key).fill(0); for (let i = 0; i < key; i++) { dp[i] = inp..
2021.10.07 -
백준 동전 0
단순 반복문 문제로 생각하고 풀었고 생각대로 풀렸다. 반복문 안에서 조건에 따른 반복문을 실행해 주었다. 문제에서 다른 조건이 주어지면 아마도 dp 로 풀이 해야 할 것 같았다. 아마 동전 1 2 3 문제가 있지 않을까 싶다. const [t, ...i] = require("fs") .readFileSync("/dev/stdin") .toString() .trim() .split("\n"); const input = i.map((v) => parseInt(v)); const n = parseInt(t.split(" ")[0]); const k = parseInt(t.split(" ")[1]); let sum = 0; let count = 0; input.sort((a, b) => b - a); getAn..
2021.10.06