전체 글 408

[백준 11501번] 주식

11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net t = int(input()) for _ in range(t): n = int(input()) prices = list(map(int,input().split())) answer = 0 maximum = prices[-1] for i in range(n-2,-1,-1): if prices[i] > maximum: maximum = prices[i] elif prices[i] < maximum: answer += (maximum - prices[i]) ..

Algorithm/Greedy 2023.12.28

[백준 20164번] 홀수 홀릭 호석

20164번: 홀수 홀릭 호석 호석이는 짝수랑 홀수 중에서 이니셜이 같은 홀수를 더 좋아한다. 운전을 하던 호석이는 앞차의 번호판이 홀수로 가득할 때 사랑스러움을 느낄 정도이다. 전화번호도 홀수만 있고 싶다. 그렇게 www.acmicpc.net # 주어진 수 N ( maximum: maximum = new_count return elif len(num_str) == 2: # 3. 수가 두자리이면 2개로 나눠서 합을 구하여 새로운 수로 생각 new_num = int(num_str[0]) + int(num_str[1]) new_str = list(str(new_num)) dfs(new_str, odd_count + current_odd_count) elif len(num_str) >= 3: # 4. 수가 세..

[백준 15721번] 번데기

15721번: 번데기 예를 들어 7명이 있고, 16번째 등장하는 “뻔”을 부른 사람의 번호를 알고 싶다면 입력은 7 16 0이다. 4명이 있고 6번째 등장하는 “데기”를 부른 사람의 번호를 알고 싶다면 입력은 4 6 1이며, 이 www.acmicpc.net # 뻔 - 데기 - 뻔 - 데기 - 뻔 - 뻔 - 데기 - 데기 # 뻔 - 데기 - 뻔 - 데기 (고정) + (뻔 x n) - (데기 x n) a = int(input()) # a

[백준 5052번] 전화번호 목록

5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net import sys input = sys.stdin.readline t = int(input().rstrip()) for _ in range(t): n = int(input().rstrip()) cases = [] flag = True for _ in range(n): cases.append(input().rstrip()) cases.sort() # for i in range(len(cases)): # if flag: # break # f..

Algorithm/String 2023.12.13

[JS] base64 이미지 File 객체로 변환하기

0. 개요 react-cropper를 사용하던 중, url 형식으로 되어있는 이미지를 File 객체로 변환하여 백엔드로 전송해주어야 하는 경우가 발생했습니다. base64 형식의 이미지를 File 객체로 변환해주는 방법 2가지를 정리해보도록 하겠습니다. (react-cropper Sandbox 코드를 참고하였습니다.) 1. 반복문을 사용하는 방법 const dataUrlToFile = (url: string, fileName: string) => { const [mediaType, data] = url.split(","); const mime = mediaType.match(/:(.*?);/)?.[0]; var n = data.length; const arr = new Uint8Array(n); whil..

[JS] 객체의 깊은 복사 / 얕은 복사

참조 타입의 데이터는 복사 시 데이터의 값 자체가 아닌 '값이 저장된 메모리의 주소'가 저장된다. 따라서 참조 타입의 복사 방법은 얕은 복사(Shallow Copy)와 깊은 복사(deep copy)로 나뉜다. - 얕은 복사(Shallow copy)는 데이터가 저장된 참조값(주소)를 복사한다. 즉, 데이터 자체를 복사한 것이 아니라 해당 데이터의 참조 값을 전달하여 하나의 데이터를 공유하는 것이다. ex) Object.assign(), 전개구문 모두 2차원 이상의 객체에서는 얕은 복사가 수행됨 - 깊은 복사(Deep Copy)는 새로운 메모리 공간을 확보해 데이터 자체를 완전히 복사하는 것을 의미한다. ex) JSON.parse()와 JSOM.stringify() 함수를 사용하는 방법

[Algorithm] 재귀함수란 ?

재귀함수란 ? 함수 내부에서 ‘자기 자신을 호출’하는 함수를 의미합니다. 이를 통해서 함수가 자신을 반복적으로 호출하면서 원하는 결과를 도출할 수 있습니다. 단, 재귀함수를 사용하는 경우 함수 호출이 계속해서 쌓이게 되면 호출 스택이 많아져서 메모리 공간을 많이 차지하고, 성능이 저하될 수 있다는 단점이 있습니다. 따라서 재귀함수를 작성할 때는 무한 루프에 빠지지 않도록 종료 조건을 명확하게 설정해주어야 합니다. 대표적인 예로 팩토리얼 계산, 피보나치 수열 계산 등이 있습니다. 참고 : https://adjh54.tistory.com/194 [Java/알고리즘] 재귀 함수(Recursion Function) 이해하기 해당 글에서는 재귀함수에 대해 이해하며 다양한 예시와 재귀함수를 이용한 알고리즘을 기반으..

Algorithm/Recursion 2023.11.27

[HTML] 시맨틱 웹이란 ?

웹사이트는 검색엔진에 의한 노출이 매우 중요하다. SEO(검색엔진 최적화: Search Engine Optimization)같은 마케팅 도구를 사용하여 검색엔진이 본인의 웹사이트를 검색하기 알맞은 구조로 웹사이트를 조정하기도 하는데, 이것은 기본적으로 검색엔진이 웹사이트 정보를 어떻게 수집하는지 아는 것으로 부터 시작된다. 검색엔진은 로봇(Robot)이라는 프로그램을 이용해 매일 전세계의 웹사이트 정보를 수집한다.(이것을 크롤링이라 하며 검색엔진의 크롤러가 이를 수행한다.) 그리고 사용자가 검색할 만한 키워드를 미리 예상하여 검색 키워드에 대응하는 인덱스(색인)을 만들어 둔다.(이것을 인덱싱이라 하며 검색엔진의 인덱서가 이를 수행한다.) 인덱스를 생성할 때 사용되는 정보는 검색 로봇이 수집한 정보인데 결..

[React] React / Vue 장단점 및 비교 정리

1) React란 ? 리액트(React)는 SPA의 UI를 만들기 위해 사용하는 자바스크립트 라이브러리이다. 장점 : 가상 DOM을 사용해서 SPA의 리플로우와 리페인트 과정을 최소화함으로써 성능을 최적화 시킨다. 컴포넌트 기반의 아키텍쳐를 가지고 있어, 재사용 가능한 컴포넌트는 생산성과 유지 보수성을 높인다. 단방향 데이터 바인딩으로 안정성이 보장된다. React 공식 문서 가이드와 방대한 생태계를 통해 쉽게 접하고 배울 수 있다. Typescript 사용에 용이하다. 단점 : 앱의 규모가 커지면 속도가 느려진다. 리액트는 자유도가 높아서 개발자마다 코딩 스타일을 통일하는데에 커뮤니케이션 비용이 든다. Javascript에 대한 숙련도가 필요하기 때문에 상대적으로 Vue보다 러닝커브가 높다. 2) Vu..

React 2023.11.27