JS
[JS] 백준 9012번 괄호
출처 백준 온라인 저지 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’와 ‘)’ 만으로 구성되어 있는 문자열이다. 그중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS이라고 부른다. 만일 x 가 VPS 라면 이것을 ..
[JS] 백준 10828번 스택
출처 백준 온라인 저지 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. e..
[JS] base64 이미지 용량 줄이기 (File API)
코드 // const file = ().files[0] // file type을 가진 input DOM에 files로 파일 데이터를 가져올 수 있습니다. const fr = new FileReader(); fr.onload = (base64) => { const image = new Image(); image.src = base64.target.result; image.onload = (e) => { const $canvas = document.createElement(`canvas`); const ctx = $canvas.getContext(`2d`); $canvas.width = e.target.width; $canvas.height = e.target.height; ctx.drawImage(e.ta..
[JS] 현재 날짜, 시간 포맷 (YYYY-MM-DD hh:mm:ss)
YYYY-MM-DD HH:MM:SS const TIME_ZONE = 9 * 60 * 60 * 1000; // 9시간 const date = new Date('2021-08-05 09:51:31'); new Date(date.getTime() + TIME_ZONE).toISOString().replace('T', ' ').slice(0, -5); // 2021-08-05 09:51:31 toISOString() 메서드는 "YYYY-MM-DDTHH:mm:ss.sssZ" 형식으로 정보가 반환되며, replace(), slice(0, -5)으로 불필요한 정보를 제거해줍니다. 해당 메서드에서 출력되는 시간은 UTC(미국) 기준으로 출력됩니다. 이를 대한민국 서울 시간에 맞추기 위해서 3240 * 10000(9시간..
[JS] 체크박스 하나만 선택
코드 first second third // Javascript function clickCheck(target) { document.querySelectorAll(`input[type=checkbox]`) .forEach(el => el.checked = false); target.checked = true; } 코드 풀이 3개의 체크박스 각각에 클릭 이벤트를 걸어주며 클릭 시 clickCheck 함수를 호출합니다. 체크 박스를 체크 시 자기 자신 element를 같이 넘겨줍니다. checkbox 타입을 가진 모든 input의 checked 속성을 false로 바꿔 선택 상태를 해제시켜줍니다.그 후 매게변수로 받아온 체크한 elmeent의 checked 속성만을 true로 바꿔줍니다.
[JS] 틱택토 (Tic-Tac-Toe)
완성본 See the Pen Untitled by hyukson (@hyukson) on CodePen. Result 화면만을 띄워놓고 테스트를 해보실 수 있습니다. 코드 풀이 틱택토는 가로, 세로, 대각선 중 1 라인을 채우는 사람이 이기는 게임입니다. 즉 승리 조건은 가로, 세로, 대각선 중 1 라인을 다 채운 플레이어를 찾으면 됩니다. 이제 틱택토 게임을 구현하기 전 필요한 기능들을 생각해 보았습니다. 필요 기능 새 게임판 만들기 네모판을 클릭 시 현재 턴인 유저에 따른 표시 게임판에 가로, 세로, 대각선 중 1 라인을 채웠는지 확인 만약 승리 조건이 일치하지 않을 시 다음 턴 넘기기 위 기능 구현을 목표로 구현해 보았습니다. 1. 새 게임판 만들기 newMake() { let html = ''; ..
[JS] 백준 2292번 벌집
출처 백준 온라인 저지 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58..
[JS] 백준 2675번 문자열 반복
출처 백준 온라인 저지 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMN..
[JS] 프로그래머스 문자열을 정수로 바꾸기
출처 programmers.co.kr/learn/courses/30/lessons/12925 코딩테스트 연습 - 문자열을 정수로 바꾸기 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니 programmers.co.kr 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5 이하입니다. s의 맨 앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져 있습니다. s는 "0"으로 시작하지 않습니다. 풀이 문자열에 사칙연산을 사용하여 연산하면 문자열이 숫자로 바뀐다는 ..
[JS] 프로그래머스 짝수와 홀수
출처 programmers.co.kr/learn/courses/30/lessons/12937 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 문제 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 풀이 if 문으로 num을 2로 나눌 때 나머지가 0이 나올 시 "Even" 아닐 시 "Odd"를 반환하면 됩니다..
[JS] 백준 11721번 열 개씩 끊어 출력하기
출처 백준 온라인 저지 www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다. 한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오. 풀이 주어진 단어의 길이를 구해준 후 for 문을 돌려줍니다. for 문에서 10단위 마다 나눠 줘야 하기 때문에 10씩 더해주며, slice 메서드를 사용하여 10개의 길이만큼 자르고 출력 시켜주면 됩니다. 코드 const input = require('fs').readFileSync('..
[JS] 백준 2839번 설탕 배달
출처 백준 온라인 저지 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬..