본문 바로가기

JavaScript

(16)
Javascript console.log 조심해야겠어요 Preview 현재 제가 운영 중인 앱 서비스는 Javascript와 Html, Css로 개발하는 웹앱입니다. 최근에 성능 최적화를 고민하다가 Production (운영) 환경에서도 console.log 가 실행되고 있는 걸 발견했습니다. 물론 네이티브 애플리케이션 apk 를 빌드할 때 release 모드로 빌드를 하기 때문에 Production 앱은 디버깅이 되진 않지만 내부적으로 console.log 함수가 호출되긴 합니다. 개발 환경에서 5분 정도 사용해보니 console.log로 찍히는 메시지가 천 줄이 넘더군요.. 지금까지 이 부분에 있어서 전혀 고려가 안되고 있었습니다. 과연 이 console.log 는 애플리케이션의 성능을 얼마나 저해시킬까요? Methodology https://ui.toa..
Javascript 반복문 성능 INDEX Preview 저번 프로그래밍 문제 포스팅(https://sieon-dev.tistory.com/120)에서 봤듯이 Javascript 에서 사용하는 여러 반복문이 각각 성능이 다르다는 걸 알 수 있었습니다. JS에는 for, forEach, map, reduce, while, do while, for in, for of 등 다양하게 반복문을 구현할 수 있는데 이번 글에서는 간단하게 for 과 while 문의 실행시간을 비교해보려고 합니다. Methodology function for_test() { let sum = 0; for (let i = 0; i
[Programmers] 롤케이크 자르기 -Javascript 번외편<왜 이게 안돼?> INDEX https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 철수와 동생이 서로 다른 토핑의 개수가 동일하게 롤케이크를 자를 수 있는 경우의 수를 구하는 문제입니다. 동생이 우선 롤케이크 전부다를 가진다고 가정한 다음 한 조각씩 철수에게 줄 때 철수가 가지고 있지 않던 토핑이면 철수의 토핑개수 +1, 동생이 한 조각을 줌으로써 동생이 가지고 있던 토핑의 개수가 동이 나면 동생의 토핑개수 -1 하면 됩니다. 이를 코드로 풀면 다음..
[Programmers] 두 원 사이의 정수 쌍 https://school.programmers.co.kr/learn/courses/30/lessons/181187# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 두 원 사이에 존재하는 정수 좌표를 가진 점의 개수를 구하는 문제입니다. 피타고라스의 정리를 이해하면 문제를 조금 더 쉽게 이해할 수 있습니다. 우선 한 원 안에 있는 정수 좌표 점의 개수를 구하는 방식은 다음과 같습니다. function getCircleDot(r){ let cnt = 0; for(let y=-r; y
[Programmers] 숫자 카드 나누기 -Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/135807# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 어느 한쪽의 모든 숫자 카드를 나눌 수 있는 a라는 숫자는 공약수 일 것입니다. 가장 큰 a를 뽑아야 하니 최대 공약수를 뽑아야 되는 문제입니다. 만약 [4, 6, 12] 가 있을 때 이 숫자들의 최대공약수를 구하는 방법은 단순하게 풀면 가장 작은 숫자 4부터 2까지 반복문을 통해 모든 숫자가 그 숫자로 나눠지는지 확인하면 됩니다. 하지만 조건을 살펴보면 배열의 원소..
[Programmers] 과제 진행하기 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/176962# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 우선 시간문제에선 저는 시간을 분 단위로 변환하고 시작합니다. 시간 개념으로 해석하려면 60분 다음엔 시간을 올려줘야 해서 번거롭기 때문에 아예 분 단위로 고려하는 것이 편합니다. "15:30" 이 주어진다 면 930이 반환됩니다. function timeToMinute(time) { return Number(time.split(":")[0] * 60) + Numbe..
[Programmers] 이모티콘 할인행사 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 카카오에서 내는 코딩테스트 문제는 문제가 길어 이해하는데도 오래 걸립니다. 이모티콘 할인율은 10%, 20%, 30%, 40% 중 하나입니다. 만약 이모티콘이 2개라면 나올 수 있는 할인율을 배열로 나타낸다면 [10%, 10%], [10%, 20%], [10%, 30%], [10%, 40%], [20%, 10%], [20%, 20%]... 이렇게 총 16가지가 됩니다...
[Programmers] 마법의 엘리베이터 - Javascript INDEX https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Solution 엘리베이터는 10의 제곱승만큼 이동할 수 있습니다. 최소한의 마법의 돌을 사용하기 위해선 10의 제곱승 단위의 층에 빠르게 도달해야 합니다. 16층을 예시로 든다면 우선 처음에는 10(-6) 층으로 갈지 혹은 20(+4) 층으로 갈지 선택해야 하고 10층에선 1개, 20층에선 2개를 사용하기 때문에 더 적은 돌을 사용하는 16 -> 20(+4) -> 0(-20)가 답이..

반응형