본문 바로가기

분류 전체보기

(68)
BeakJoon - 2566번: 최댓값 과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개 씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈간을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한곳의 위치를 출력한다. 위 문제를 파이썬 코드로 풀이 하였다. # 2023년 4월 29일 15:43:14 제출 # # # # # rows = 9 // ..
React Hooks - useState react에서 state는 컴포넌트가 가질 수 있는 상태이다. useState는 컴포넌트의 상태를 간편하게 생성하고 업데이트 시킬 수 있는 도구이다. const [state, setState] = useState(초기값); 이렇게 변수를 생성 하는 것이 기본 상태이다. 만약 시간을 관리하고 싶다고 가정해보자. const [time, setTime] = useState(1); setTime(6); 이렇게 입맛에 맞게 변경 가능하다. time에 들어있는 기본값은 1이고 setTime을 통해 재정의가 가능하며 setTime을 실행하면 해당 컴포넌트는 다시 렌더링 된다. 간단하게 시간을 카운트 해보는 페이지를 만들어보자. import { useState } from 'react' import './App.css..
선택 정렬(selection sort) 이전에는 효율성이 O(N2)인 데이터 정렬 알고리즘인 버블 정렬(bubble sort)을 살펴보았다. 이번에는 선택 정렬(selection sort)라는 다른 정렬 알고리즘을 알아보고 버블 정렬과 효율성을 비교해 보겠다. 선택 정렬의 루프를 알아보자. 먼저 인덱스 0에 들어 있는 값을 확인하며 시작하여 최솟값으로 지정한 후, 다음 인덱스와 비교한 다음 최솟값을 결정한다. loop1 min_Index = 0 (값 = 5) [5, 3, 2, 1, 4] 인덱스 0과 1의 비교 min_Index = 1 (값 = 3) [5, 3, 2, 1, 4] 인덱스 1과 2의 비교 min_Index = 3 (값 = 2) [5, 3, 2, 6, 4] 인덱스 2과 3의 비교 min_Index = 3 (값 = 2) [5, 3, 2..
버블 정렬(Bubble Sort) 버블 정렬은 단순 정렬(simple sort)중 하나로 알려져있으며 매우 기본적인 정렬 알고리즘이지만 더욱 빠르다고 알려진 정렬 알고리즘보다 비효율적이다. 버블 정렬 예제를 살펴보자. 먼저 [ 6, 3, 1, 2, 4, 5 ] 이라는 배열을 정렬하고 싶다고 가정하자. 1loop [ 6, 3, 1, 2, 4, 5 ] 먼저 6과 3을 비교하여 순서가 맞지 않음을 확인하고 6과 3을 교환한다. [3, 6, 1, 2, 4, 5 ] 그다음으로 6과 1을 비교하여 순서가 맞지 않음을 확인하고 6과 1을 교환한다. [3, 1, 6, 2, 4, 5 ] [3, 1, 2, 6, 4, 5 ] [3, 1, 2, 4, 6, 5 ] 1loop result = [3, 1, 2, 4, 5, 6 ] 이렇게하여 1loop가 끝난다. 2..
이진 검색(Binary Search) 이진 탐색은 정렬된 데이터에서 특정한 값을 찾고자할 때 O(logN)의 성능으로 빠르게 값을 찾을 수 있는 장점이 있다. 2023.04.20 - [Data Structures & Algorithms] - 빅오 big-O 빅오 big-O 빅오 표기법 서로 간의 시간복잡도를 쉽게 소통할 목적으로 자료구조와 알고리즘의 효율성을 간결하게 일관된 언어로 설명하기 위한 수학적 언어이다. 빅오 표기법을 이용해 주어진 알고리즘 chaehun97.tistory.com O(logN)의 설명은 이전의 글에서 간략하게 써둔 것이 있으니 참고해보자.. 부족한 설명으로 이해가 되지 않을 수 있으니.. 다른 포스팅을 보는 것이 효율적일 수도 있다. 나중에 수정할 예정이니 참고만 해보자. 아마도 코드로 구현해보면 어떤 식으로 효율적..
JavaScripts Promise 정리 const state = false; const promise = new Promise((resolve, reject) =>{ if (state) { resolve('성공일 때 실행됩니다.'); }else { reject('실패일 때 실행됩니다.'); } }) promise .then((message) => { // resolve console.log('성공'); }) .catch((err) => { //reject console.log(err) }) .finally(() => { //any console.log('any'); }) 프로미스 객체를 먼저 생성 한 후 resolve와 reject를 매개변수로 받는 콜백 함수를 넣는다. 이렇게 만든 promise에 then, catch, finally가 사용..
JavaScripts ES2015+(ES6) 정리 1. const, let 보통 자바스크립트는 변수선언을 var로 하지만 const와 let으로 대체된다. var는 전역변수 let과 const는 블록 스코프를 가진다. let은 변수, const는 상수 if (true){ var x = 3; } consloe.log(x); //3 if (true){ const y = 3; } consloe.log(y); // is not defined 2. 템플릿 문자열 기존의 큰따옴표나 작은따옴표로 감싸는 것과 다르게 Tab키 위에 있는 " ` " 백틱으로 감쌀수 있으며, 문자열 안에 변수를 넣을 수 있다. var num1 = 1; var num2 = 2; var string = `${num1} 더하기 ${num2} 는 ${num1 + num2} 입니다.` 3. 객체 ..
빅오 big-O 빅오 표기법 서로 간의 시간복잡도를 쉽게 소통할 목적으로 자료구조와 알고리즘의 효율성을 간결하게 일관된 언어로 설명하기 위한 수학적 언어이다. 빅오 표기법을 이용해 주어진 알고리즘의 효율성을 쉽게 분류하고 이해 할 수 있다. 표기 : O(N) 빅오의 실행 속 O(1) → O(log N) → O(N) → O(N log N) → O(N^2) → O(N) → O(2^N) 아랫단계에 어떤 수를 곱하든 데이터가 커지다 보면 언젠가 윗 단계가 더 느려진다. 빅오의 N단계 빅오의 표현은 괄호 안에 있다. O(1)은 가장 빠른 알고리즘으로 분류한다. 데이터가 늘어나도 단계수는 증가하지 않는다. N이 얼마든 항상 상수단계에서만 필요하다. 빅오의 본질 데이터가 늘어날때 알고리즘의 성능이 어떻게 바뀌는지가 관건이다. 데이터..