전체 글 19

[JavaScript] 필수 배열 함수

기존 배열을 변경시키는 함수push(x)동작: 배열의 맨 끝에 요소 추가반환: 추가 후 배열 길이 반환 pop()동작: 배열의 맨 끝 요소 삭제반환: 삭제한 값 반환 shift()동작: 배열의 맨 처음 요소 삭제반환: 삭제한 값 반환 unshift(x)동작: 배열의 맨 처음에 요소 추가반환: 추가 후 배열 길이 반환 splice(i, num)동작: i번째 요소부터 num개의 요소를 삭제반환: 삭제한 배열 반환 기존 배열을 변경시키지 않는 함수 concat(x)동작: 배열의 맨 끝에 요소 추가반환: 요소를 추가한 새로운 배열을 반환 slice(s, e) 동작: s번째 요소부터 e-1번째 요소까지 자름반환: 자른 배열 반환 join(d) 동작: 구분자 d를 기준으로 모든 배열내의 요소 값을 문자열로 합침반환..

언어/JavaScript 2024.07.08

[JavaScript] 단축평가 (short circuit evaluation)

JavaScript 강의를 듣다가 단축평가라는 개념이 나왔다.단순히 아래의 4가지 규칙을 외우라고 설명해주었다. &&를 사용했을 때 좌측이 true면 우측값 반환&&를 사용했을 때 좌측이 false면 좌측값 반환||를 사용했을 때 좌측이 true면 좌측값 반환||를 사용했을 때 좌측이 false면 우측값 반환 뭔가 잘 외워지지가 않아서 뭔가 이해가 가능한 부분이 있는지 좀 더 찾아보았다. 정의논리 연산자가 표현식을 평가하는 도중에 결과가 확정되면 나머지 부분은 평가하지 않고 즉시 결정을 내리는 것을 의미쉽게 말해 논리 연산자가 더 이상 확인할 필요가 없을 때 멈추는 것 AND(&&) 연산자AND 연산자는 두 피연산자가 모두 true여야 true를 반환한다. 첫 번째 피연산자가 false인 경우, 두 번째..

언어/JavaScript 2024.07.07

[JavaScript] Hoisting(호이스팅)

다른 언어에는 잘 없는 개념인데 JavaScript에는 존재하는 개념이다. Hoisting(호이스팅)함수와 변수 선언문이 코드의 최상단으로 끌어올려지는 것처럼 느껴지는 현상 여기서 중요한 것은 그렇게 느껴지기만 한다는 것 = 실제로는 그렇지 않다는 것 이 현상은 JavaScript 코드 실행 방식에 관련이 있는 것으로 코드가 실행되기 전에 변수와 함수의 선언이 미리 처리되기 때문에 발생한다. 변수 Hoisting변수 var입력:console.log(name);var name = '파삭';console.log(name); 출력:undefined파삭 분명 name이 아직 선언되지 않은 상태인데 오류가 발생하지 않고 undefined라는 값이 출력됨. 변수 let, const입력:console.log(name..

언어/JavaScript 2024.07.06

Python Extension VS Python Interpreter

파이썬을 잠시 사용할 일이 있어서 환경 구성을 하다가 VSCode에 있는 Extension이라는 도구에 대한 궁금증이 들었다.이전에는 파이썬 Interpreter가 없는 상태에서 Extension만 설치해도 해당 기능이 포함된 것인지 알아보았다. Python Extension (Microsoft에서 제공) 목적 및 기능:개발 환경 강화: VSCode에서 Python 코드를 더 효율적으로 작성, 디버그, 테스트할 수 있게 해주는 도구기능:코드 편집 기능: IntelliSense, 코드 자동 완성, 구문 강조, 코드 탐색 등디버깅 도구: 중단점 설정, 스택 추적, 변수 검사 등Linting: 코드 스타일 검사 및 오류 감지코드 형식 지정: 코드 스타일을 자동으로 맞춰줌테스트 통합: unittest, pyte..

라이브러리(Library) vs 프레임워크(Framework)

라이브러리, 프레임워크의 개념은 항상 헷갈렸다. 분명히 알고 있긴 하지만 정확하게 구분지어 설명하라고 하면 자신감도 없고 말 끝이 흐려졌다. 그 의미는 제대로 알고있지 않다는 것.  패키지클래스, 함수, 인터페이스 등의 논리적 묶음 (JAVA에서 사용되는 개념)서로 관련이 있는 클래스 또는 인터페이스를 논리적으로 묶어줌으로써 관리 효율 상승  (이 개념도 개인적으로 항상 헷갈렸기 때문에 넣었음) 라이브러리특정 기능을 수행하는 코드의 모음재사용 가능한 도구 jQuery: 자바스크립트 DOM 조작 라이브러리NumPy: 파이썬 수치 계산 라이브러리Pandas: 파이썬 데이터 분석 라이브러리 프레임워크애플리케이션의 기본 구조와 흐름을 제공하여 개발을 돕는 것이름 그대로 전체적인 틀 React: 자바스크립트 UI..

[Aseprite] 최신버전 무료 설치 방법 (직접 컴파일)

● 소개 Aseprite는 현재(2024.06.18 기준) 스팀에서 20,500원에 판매중인 소프트웨어이 소프트웨어는 GitHub에 소스코드가 공개되어 있어서 약간의 시간만 들이면 무료로 받을 수 있다. 하지만, 해당 방법으로 설치 후 사용하다가 최신 버전으로 업데이트를 하려면 다시 최신 버전으로 설치해야한다는 번거로움이 있다. (스팀에서 구매한 경우 자동으로 업데이트 가능) 지금부터 소개할 설치 방법은 가볍게 시험삼아 사용해보거나 자동 업데이트의 편리함 보다는 금전적인 절약이 더 중요한 분들께 추천한다. ● 설치 방법 (Windows 기준)1. 소스코드 다운로드https://github.com/aseprite/aseprite/releases Releases · aseprite/asepriteAnimat..

취미/도트찍기 2024.06.19

[solved.ac] 알쏭달쏭 스트릭 그래프 염색 컬러칩 뽑기 (확률표)

solved.ac 스트릭 컬러 뽑기 백준 문제를 풀다보니 별조각이 꽤 많이 모였다. 배경을 사볼까 고민하다가 스트릭 염색 뽑기가 재밌어 보여서 바로 구매해봤다. 색깔 별 확률표 목표는 뽑을 수 있는 레전더리 hanbyeol 색상. 될 때까지 간다. (참조: https://twitter.com/solved_ac/status/1513511973467877376/photo/2) 처음 모습 아무 염색도 안 한 익숙한 초록색이다. 코인 시세 장전된 코인은 6개 총 240번 뽑을 수 있다. 결과(일부) 에픽 레어 레어 에픽 (중략) 캬 70개에서 나왔다! 으흐흐

[DP] 동적 프로그래밍 기본 개념 및 패턴 모음

개념 정리 🟡 거의 모든 DP를 관통하는 개념 3가지 DP 배열이 무엇을 의미할지 정하기 점화식 세우기 시작값 넣기 🟡 반복문 DP를 재귀로 바꾸는 발상 나는 거의 반복문으로 DP를 풀고 있다. 좀 더 쉽게 느껴지기 때문이다. 그런데 재귀가 더 직관적이고 편한 문제들이 분명 존재한다. 반복문을 재귀로 바꾸는 것은 어려운게 아니다. 반복문 DP에서의 시작값은 재귀문에서 if문을 대치하면 된다. (즉, 가장 Deep하게 내려간 마지막 재귀를 찍고 다시 돌아오는 느낌) 쉬운 예시로 피보나치 수열이 있다. // n번째 피보나치 수열을 구하는 문제 // 반복문 public static int calcLoopFibonacci(int n) { int answer = 0; // [CASE1] 값이 1인 경우 해당 값을..

[백준] 2529번: 부등호 (JAVA, 문제, 문제풀이)

https://www.acmicpc.net/problem/2529 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력 www.acmicpc.net 순열을 통해서 모든 경우의 수를 구하고 부등호 비교를 해서 올바른 값 중 최대값과 최소값을 뽑는 문제. 푸는 방식이 배우고 싶은 아이디어라서 글로 남긴다. 첫 번째 실패 코드 (시간 초과): 부등호를 경우의 수마다 매번 확인하고, 최대값 최소값도 계산 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util..

[JAVA] 유클리드 호제법 (최대공약수, 최소공배수 구현)

https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95 유클리드 호제법 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 ko.wikipedia.org // 최소공배수 public static int LCM(int a, int b) { return (a * b) / GCD(a, b); } // 최대공약수 private static int GCD(int a, int b) { if(b == 0) { re..