본문 바로가기

분류 전체보기433

[Backtracking] 백트래킹 알고리즘의 정의 DFS(깊이 우선 탐색) 복습 DFS는 가능한 모든 경로(후보)를 탐색합니다. 따라서, 불필요할 것 같은 경로를 사전에 차단하거나 하는 등의 행동이 없으므로 경우의 수를 줄이지 못합니다. 따라서 N! 가지의 경우의 수를 가진 문제는 DFS로 처리가 불가능할 것입니다. Backtracking 알고리즘이란 ? '백트래킹'이란 현재 상태에서 가능한 모든 경로를 따라 들어가 탐색하다가 원하는 값과 불일치하는 부분이 발생하면 더 이상 탐색을 진행하지 않고 전 단계로 돌아가는, 즉 이름 그대로 방금 왔던 길을 되짚어가는, Backtrack 하는 알고리즘이다. 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말합니다. 깊이 우선 탐색에서는 한 루트를 끝까지 들여다보고 정답이 없을 시 처음.. 2023. 8. 23.
[Python] 리스트 자료형 메소드 remove() / del / pop() 차이 파이썬 리스트(List)의 remove, del, 그리고 pop 메서드는 모두 리스트의 요소를 삭제하는 데 사용되지만, 조금씩 다른 방식으로 작동합니다. 1. remove() 메소드 my_list = [1, 2, 3, 2, 4] my_list.remove(2) # 첫 번째 2가 삭제됨 print(my_list) # [1, 3, 2, 4] 사용법: list.remove(value) 주어진 값과 동일한 첫 번째 요소를 찾아 삭제합니다. 만약 리스트에 동일한 값이 여러 개 있을 경우, 가장 왼쪽에 있는 첫 번째 값을 삭제합니다. 해당 값이 리스트에 없을 경우 ValueError 예외가 발생합니다. 2. del 키워드 Copy code my_list = [1, 2, 3, 4, 5] del my_list[2] #.. 2023. 8. 23.
[Node.js] Pug란 ? javascript를 사용하여, HTML을 렌더링해주는 템플릿 엔진 Pug 사용이유 HTML을 간단하게 표현해서 가독성이 좋다. 마크업 문법보다 코드량이 적어 생산성이 좋아진다. JS 연산 결과를 쉽게 보여줄 수 있다. 정적인 부분과 동적인 부분을 따로 할 수 있다. Pug 작성법 html에서 기호가 제외된다. 요소와 같은 줄에 있는 것을 태그로 감싼다. 태그에 속성을 넣을때 괄호()를 사용한다. - 태그(속성=값) 태그뒤에 .을 붙혀 클래스를 추가할 수 있다 - 태그 .class 태그뒤에 #을 붙혀 id를 추가할 수 있다 - 태그 #id 들여쓰기로 부모요소와 자식요소를 나눈다. Pug의 3가지 장점 상속(block & extends) 파일 분할(include) 블럭 재사용(Mixins) 2023. 8. 22.
[Sass] Sass란 ? Sass는 기능이 뛰어나고 안정적인 CSS 확장 언어이다. Sass란 ? SASS는 CSS를 효율적으로 작성할 수 있도록 도와주는 CSS 확장언어 이자 전처리기(CSS Preprocessor) 입니다. $font-stack : Helvetica, sans-serif $primary-color : #333 body font : 100% $font-stack color : $primary-color SASS는 { }중괄호와 세미콜론 ( ; )은 사용하지 않고, '들여 쓰기'와 '줄 바꿈' 형식으로 문법을 사용합니다. 또한 변수 정의를 허용하는데, 변수는 $ 기호로 시작되고, 변수 할당은 콜론(:)으로 마무리합니다. CSS는 규모가 커질수록 코드가 복잡해지고, 유지보수가 불편해 집니다. CSS 코드 내에서 동.. 2023. 8. 22.
[백준 15684번] 사다리 조작 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net n, m, h = map(int,input().split()) answer = 4 def check(): # i번에서 시작한 세로선이 i번에서 끝나는지 확인하는 함수 for i in range(n): temp = i # 이동하는 세로선 위치 for j in range(h): if ladder[j][temp] == 1: # 오른쪽이 1인 경우(오른쪽으로 가로선이 쳐져있는 경우) temp += 1 elif temp > 0 and ladder[j][temp-1] ==.. 2023. 8. 21.
[Next.js] 클라이언트 컴포넌트(Client Component)와 서버 컴포넌트(React Server Component) 정리 Next.js 13과 서버 컴포넌트 next가 13버전으로 올라오면서 굉장히 많은 변화가 있었는데, 그 중 가장 파격적인 변화는 바로 app directory의 등장이라고 할 수 있다. 기존 next 프로젝트는 pages라는 폴더를 이용해 스크린간 라우팅을 셋팅할 수 있었는데, next13부터는 app 폴더가 pages 폴더를 대체하게 되었다. 그리고 app directory와 관련해서 우리가 집중할 부분은 app directory내부에서는 모든 컴포넌트가 기본적으로 서버컴포넌트로 동작한다는 사실이다. "use client"; import {useState} from "react"; const ClientComponent =() => { const [state,setState] = useState() r.. 2023. 8. 21.