본문 바로가기

전체 글

(359)
JS 유용한 배열 메서드 정리. forEach, map, reduce, find, filter 등등 // forEach는 map과는 다르게 반환값이 없음. 따라서 return해도 undefined가 나옴. let answer=[3,2,1,4]; let attempt=[1,2,3,4]; let strike=0; let ball=0; for(let i=0;i-1){ if(idx==i){ strike+=1; continue; } ball+=1; } } attempt.forEach((value, idx)=>{ let index=answer.indexOf(value); if(index>-1){ if(idx==index){ strike+=1; } else{ ball+=1; } } }); let arr2=[1,2,3,4,5]; /* 아래 세 표현식은 모두 같은 표현식이다. 주의할 것은 중괄호와 return문이 붙어..
Node.js) BOJ 20040번 : 사이클게임 https://www.acmicpc.net/problem/20040 const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; const input = fs.readFileSync(filepath).toString().trim().split("\n"); input[0]=input[0].split(" ").map(n=>+n); const node=input[0][0]; const times=input[0][1]; class Edge{ constructor(from, to){ this.from=from; this.to=to; } } class UnionFind{ constructor(n){ this.p..
백준(BOJ) 20040: 사이클 게임 https://www.acmicpc.net/problem/20040 자료구조 문제로 Union-find집합자료구조를 묻고 있다. "사이클=집합" 이라는 것을 항상 기억하고 사이클에 관한 문제라면 어떻게든 Union-find를 사용하려고 해야한다. 사이클은 다른 말로 집합을 형성하는 것이다. 같은 집합에 속해있는 정점들만 선택하면 하나의 사이클을 만든다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static class Edge { int from; int to; public Edg..
Node.js) BOJ 11286번 : 절댓값 힙 const [_, ...input] = fs.readFileSync(filepath).toString().trim().split("\n"); 위와 같은 표현식이 낯설었다. 이렇게 쓴 이유는 인자를 받을 때 처음 받는 인자는 불필요하여 버릴때 위와 같이 배열 안에 언더바를 사용할 수 있다. input은 내가 입력한 데이터를 포함한 개행문자까지 모두 포함되고 거기에 추가로 배열의 형식인 쉼표 까지 추가된다. 예를들어 이 문제의 초기 입력 데이터가 와 같을 때 input에 들어간 값을 console.log로 확인해 보면 와 같음을 확인할 수 있다(아래 코드에 모든거 남겨놓았다). 그리고 이것을 const num = input.map(v => +v); 한 결과 num을 출력해 보면 num: 1,-1,0,0,0,..
백준(BOJ) 11286 : 절댓값 힙 https://www.acmicpc.net/problem/11286 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Comparator; import java.util.PriorityQueue; public class Main{ public static class Element{ int original; int ab; public Element(int original){ this.original=original; this.ab=Math.abs(original); } public int getAbsValue(){ return ab; } public int getOriginal(){ return original..
백준(BOJ) 1463: 1로 만들기 이미 푼 문제이므로 다른 설명은 따로 하지 않겠다. 다만 node.js로 풀때 입력값을 받을 때 아래와 같이 toString()뒤에 있는 split("\n")가 이 문제에서는 redundant하다. 문제가 여기에서 그치면 상관없는데 이런 부수적인 것이 있으면 라고 오류를 뱉는다. const fs=require('fs'); const filepath=process.platform==='linux'?'dev/stdin':'./input.txt'; let input=fs.readFileSync(filepath).toString().split("\n"); solution(+input) function solution(n){ const dp=new Array(n+1).fill(0); for(let i=2;i
제로초 baseball Toy project 학습내용 보통이렇게 form과 input태그가 함께 쓰이면 form태그에 evnet를 추가하여 줌. 그래서 아래 코드에$form.addEventListener("submit", (event) => { });와 같이 코딩한 것임. 사실 form 태그 없이 input만 써도 되긴합니다. 하지만 html의 웹표준을 준수하려고 form안에 input태그를 사용해 준것입니다. 버튼(click)과 달리 form태그는 submit이라는 이벤트가 존재합니다. 이렇게 해서 form안에 있는 button을 누르게 되면 submit이 호출되게 됩니다. 기본적으로 아래와 같은 주소(~.html)였다. 그런데 확인 버튼을 누르면 화면이 깜빡거리는 동시에 이 주소가 로 바뀌는 것을 볼수있다(뒤에 ? 가 덧붙음). 이것이 바로 form 의..
에러... ! [rejected] main -> main (fetch first) 이 문제로 너무 많은 시간을 해결하는데 보냈다. 문제의 원인은 로컬 저장소와 원격 저장소가 동기화되지 않아 발생하는 문제이다. 기존 데이터가 손실될 수 있기 때문에 push를 막은 것이다. 해결방법. 구글에서 찾은데로 git pull --rebase origin main (#git pull --rebase[원격저장소이름][브랜치이름])를 해보았다. 그 후에 git push 를 하였더니 아래와같이 git push --set--upstream origin main 을 하래서 그대로 하였더니 문제가 해결되었다. 문제를 해결하는 과정에서 찾아낸 유용한 명령어들을 소개 하고자 한다. git log --branches --not --remotes // git에서 push하지 않은 커밋 확인 git reset --s..