본문 바로가기

전체 글60

[React] 컴포넌트란? (Component) 💡 컴포넌트(Component) 란? 컴포넌트는 재사용 가능한 UI 요소로, 리액트에서 앱을 이루는 가장 작은 요소라고 할 수 있습니다. 웹에서 HTML을 사용하면 tag를 가지고 구조를 가진 문서를 만들 수 있습니다. 리액트에서는 이런 마크업 언어, CSS, JavaScript를 결합하여 "컴포넌트"라는 요소를 만들 수 있습니다. 컴포넌트를 정의하는 방법에는 함수형 컴포넌트와 클래스형 컴포넌트 두 가지가 있습니다. 함수형 컴포넌트 자바스크립트 함수를 작성해서 컴포넌트를 정의하는 방법입니다. function Welcome(props) { return Hello, {props.name}; } 속성을 의미하는 props를 인자로 받아 react 엘리먼트를 반환합니다. 클래스형 컴포넌트 ES6 class 를 .. 2023. 10. 1.
[프로그래머스] Lv2. 전력망을 둘로 나누기(Java) https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 하나로 연결되어 있는 전력망을 전선을 하나 잘라서 두 개의 전력망으로 나눌 것이다. 아래 그림처럼 자르는 전선이 만약에 [4, 7] 이라고 한다면 두 전력망은 4에 연결되어 있는 전력망과 7에 연결되어 있는 전력망으로 나눠질 것이다. 4에 연결되어 있는 전력망의 송전탑의 개수는 6개이고, 7에 연결되어 있는 전력망의 송전탑의 개수는 3개이다. 어떤 송전탑에 연결되어 있는 송전탑의 개수는.. 2023. 9. 25.
[알고리즘] 소수 구하기 (Java) 소수 구하는 문제는 코테 풀 때 종종 나오는 데 풀 때마다 까먹어서 정리해보려고 한다! 소수 소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수이다. 자세히 뜯어서 살펴보면 조건이 2가지 이다. 조건1) 1보다 큰 자연수라는 것 조건2) 1과 자기 자신만을 약수로 가진다는 것 1보다 큰 자연수라는 것은 2부터 시작하는 자연수를 의미한다. 그래서 즉 0과 1은 제외하게 된다. 2, 3, 11, 17 과 같은 숫자들이 소수이고, 8, 12와 같이 1과 자기자신 외의 약수가 있는 숫자들은 소수가 아닌 합성수이다. 소수 판별 알고리즘 N보다 작은 자연수들로 나눠보기 가장 간단한 방법이다! 소수는 1과 자기 자신만을 약수로 가지는 수이기 때문에 자기 자신보다 작은 자연수들(1은 제외)로 나눠보고 나.. 2023. 9. 22.
[프로그래머스] Lv2. 소수 찾기(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 numbers의 길이가 최대 7이기 때문에 만들 수 있는 모든 경우의 수를 다 해도 아주 크지 않다. 길이개수 1 7 2 7 x 6 3 7 x 6 x 5 ... ... 7 7 x 6 x 5 x ... x 2 x 1 따라서 완전 탐색으로 모든 경우의 수를 구하고 그 중 소수인 수를 찾으면 된다. 풀이 문자열 입력을 숫자형 배열로 바꾸기 입력이 문자열(numbers)로 주어지기 때문에.. 2023. 9. 22.
[프로그래머스] Lv2. 모음사전(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 모음 5개(A, E, I, O, U)를 사용해서 만들 수 있는 단어의 길이의 종류는 5개이다(1글자 ~ 5글자) 글자 수단어 개수 1 5^1 = 5 2 5^2 = 25 3 5^3 = 125 4 5^4 = 625 5 5^5 = 3125 합계 3905 모든 경우의 수를 다 만들어도 4000개 정도이기 때문에 모든 경우를 다 확인하는 완전 탐색으로 풀어도 가능하다. 재귀함수를 통해 가능.. 2023. 9. 22.
[프로그래머스] Lv2. 단어 변환(Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 begin 에서부터 시작해서 target 까지 어떤 조건을 만족하는 단어들을 쭉 찾는다는 것에서 그래프 탐색 DFS or BFS라고 생각했다. target까지 쭉 하나의 줄기를 타고 찾기 때문에 DFS로 풀어야 하나 했는데, 그 단계의 최단 과정을 구하는 것이기 때문에 BFS 라고 생각했다. 최소한의 단계로 변환해야 하기 때문에 한번 사용한 단어는 사용할 수 없도록 하기 위해 방문.. 2023. 9. 22.