본문 바로가기

분류 전체보기93

예외 처리 ① 구문 오류와 예외 프로그래밍 언어에는 크게 두 가지 종류의 오류가 있다.프로그램 실행 전에 발생하는 오류프로그램 실행 중에 발생하는 오류프로그램 실행 전에 발생하는 오류를 구문 오류, 프로그램 실행 중에 발생하는 오류를 예외 또는 런타임 오류라고 한다. 구문 오류 괄호를 닫지 않거나 문자열을 닫지 않는 등이 구문 오류에 해당한다. 구문 오류가 발생하면 웹 브라우저가 코드를 분석할 수 없으므로 프로그램이 실행되지 않는다. JavaScript에서 SyntaxError로 출력되는 오류가 구문 오류에 해당한다. 구문 오류는 웹 브라우저가 어느 위치의 어떤 부분이 문제인지 구체적으로 알려주므로 이를 수정함으로써 해결할 수 있다. 예외 console.log를 console.rog로 작성하는 등이 예외에 해당한다 예외가 발생하면 예외.. 2024. 10. 27.
문서 객체 모델 ② 이벤트 활용 문서 객체 모델 ① 문서 객체 조작하기에서 addEventListener(), removeEventListener() 메소드를 사용해이벤트를 연결하고 제거하는 방법에 대해 알아보았다. 이번 글에서는 이벤트 관련하여 더 자세히 알아보자. 이벤트 모델이벤트 연결 방법이벤트를 연결하는 방법인 이벤트 모델로는 표준 이벤트 모델, 고전 이벤트 모델, 인라인 이벤트 모델이 있다.body 문서 객체에 keyup 이벤트를 연결하는 상황을 예로 들어보자.표준 이벤트 모델document.body.addEventListener('keyup', (event) => {}) 이전 글에서 배운 addEventListener() 메소드를 사용해 이벤트를 연결하는 것을 표준 이벤트 모델이라고 한다.고전 이벤트 모델document.bo.. 2024. 10. 26.
백준 10810번, 10813번 백준 10810번을 풀고 기존 풀이를 개선할 수 있는 부분이 있어 정리해보고자 한다.let [NM, ...input] = require('fs').readFileSync('/dev/stdin').toString().split('\n')const N = NM.split(' ').map(Number)[0]const M = NM.split(' ').map(Number)[1]let basket = []for (let i = 0; i  1. Array 객체의 fill 메소드// let basket = []// for (let i = 0; i basket 배열에 0을 채우기 위해 반복문을 사용하였는데 fill 메소드를 사용하면 한 줄로 처리할 수 있다.  2. 다중 할당// const m = input[i].spl.. 2024. 10. 10.
백준 10818번 백준 10818번을 토대로 주어진 숫자들의 최대, 최소를 구하는 방법을 정리해보려고 한다. 1. min을 주어진 범위의 최댓값으로, max를 주어진 범위의 최솟값으로 설정let [N, numbers] = require('fs').readFileSync('/dev/stdin').toString().split('\n')numbers = numbers.split(' ').map(Number)let max = -1000000let min = 1000000for (const number of numbers) { if (max  주어진 조건에 따르면 각 정수는 -1,000,000 이상, 1,000,000 이하이므로 min을 1,000,000으로, max를 -1,000,000으로 초기화하였다. 2. Math 객체의.. 2024. 10. 10.
백준 10951번 백준 10951번을 풀어보았다. A+B 유형에 EOF라는 조건이 붙어 기존 문제들과 많이 다를 줄 알았는데 크게 다를 건 없었다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')let output = ''for (let i = 0; i  당연히 맞을 거라 생각하고 위 코드를 제출했는데 틀렸다고 나왔다. 아무리 고민해도 어디가 잘못된 건지 모르겠어서 관련하여 찾아보던 중 백준 질문글을 보게되었다. 나와 같은 문제를 겪고 있는 사람이 있었고, 다행히 내 코드의 문제라기보다 백준 테스트 케이스의 문제인 것 같았다. 테스트 케이스 중 마지막 부분에 \n이 하나 더 추가된 테스트 케이스가 있었나보다. 테스트 케이스의 마지막 \n.. 2024. 10. 9.
백준 10871번 백준 10871번을 반복문을 사용하여 풀어보았다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')const N = Number(input[0].split(' ')[0])const X = Number(input[0].split(' ')[1])let output = ''for (let i = 0; i  정답은 올바르게 출력해내지만 시간 초과가 떴다. 그래서 메소드를 사용하여 풀어봤고, 다행히 통과했다.let input = require('fs').readFileSync('/dev/stdin').toString().split('\n')input[1].split(' ') .filter((value) => value outp.. 2024. 10. 9.