끄적끄적 코딩
article thumbnail
[C++] 프로그래머스 - 블록 이동하기
알고리즘 2021. 3. 8. 01:04

2020 KAKAO BLIND RECRUITMENT (2020 카카오 블라인드 채용 문제) N * N 의 보드에서 로봇을 N * N의 위치로 몇초만에 이동 시킬 수 있는지 찾는 문제입니다. 로봇은 상하좌우로 이동할 수 있습니다. 회전은 하는 중에 벽이 걸리지 않으면 회전이 가능합니다. 1초에 움직일 수 있는 모든 경우의 수를 확인해보았습니다. 1. 위로 이동 2. 오른쪽 이동 3. 왼쪽 이동 4. 아래 이동 5. 왼쪽을 축으로 위로 90도 회전(로봇이 가로인 상태) 6. 오른쪽을 축으로 위로 90도 회전(로봇이 가로인 상태) 7. 왼쪽을 축으로 아래로 90도 회전(로봇이 가로인 상태) 8. 오른쪽을 축으로 아래로 90도 회전(로봇이 가로인 상태) 9. 위를 축으로 왼쪽으로 90도 회전(로봇이 세로인 상태..

article thumbnail
[React] props, defaultProps, propTypes
React 2021. 3. 6. 15:51

props란 컴포넌트 속성을 설정 할 때 사용하는 요소 부모 컴포넌트에서 자식 컴포넌트로 props를 전달 가능 properties의 줄임말 (속성) // App.js import React from "react"; import ChildrenComponent from "./ChildrenComponent"; const App = () => { return ; }; export default App; // ChildrenComponent.jsx import React from "react"; const ChildrenComponent = (props) => { return name : {props.name}; }; export default ChildrenComponent; -- 결과값 -- defaul..

[JavaScript] 조건부 연산자, AND 연산자, OR 연산자
JavaScript 2021. 3. 5. 22:29

JSX 내부의 자바스크립트 표현식에서 if문을 사용할 수 없습니다. 그래서 조건문을 사용하기 위해서는 - JSX 밖에서 if문을 사용 - JSX 내에서 { } (표현식) 안에 조건부 연산자를 사용 조건부 연산자는 다음과 같이 사용합니다. // { 조건 ? 참 : 거짓 } { A > B ? "A is win" : "B is win" } - 앞부분에 조건을 입력합니다. - ? 뒤에는 참인 경우 실행 될 코드를 입력합니다. - : 뒤에는 거짓인 경우 실행 될 코드를 입력합니다. 조건부 연산자를 활용하여 flag가 true일 때 "Hello"를 보이게 할 수 있습니다. import React from "react"; const App = () => { const flag = true; return {flag ?..

article thumbnail
[C++] 프로그래머스 - 외벽 점검
알고리즘 2021. 3. 3. 17:29

2020 KAKAO BLIND RECRUITMENT (2020 카카오 블라인드 채용 문제) 취약지점을 몇명의 친구들로 확인 할 수 있는지 찾는 문제입니다. 취약지점이 위의 이미지 처럼 원형모양에 각각 분배되어있습니다. 각 친구들은 확인할 수 있는 거리가 다릅니다. 1. 가장 많이 볼 수 있는 친구를 취약점 위치에 배치 2. 취약점 위치로부터 시계방향으로 취약점들 제거 3. 제거된 취약점과 해당 친구를 제외하고 1~2 반복 4-1. 모든 취약점 제거시 true와 현재 깊이값을 반환 4-2. 취약점 제거하지 못한 상태에서 더 이상 친구가 없는 경우 false 반환 5. true인 경우 깊이값이 가장 작은 값을 반환, false인 경우 -1을 반환 DFS를 활용해서 문제를 해결했습니다. #include #in..

article thumbnail
[자료구조] 정렬 알고리즘
자료구조 2021. 3. 2. 19:06

정렬 알고리즘이란 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘 대표적 정렬 - 선택 정렬 - 삽입 정렬 - 거품 정렬 - 힙 정렬 - 퀵 정렬 - 합병 정렬 정렬 방법 안전 정렬 - 정렬 후 중복값 순서가 유지 제자리 정렬 - 추가적인 메모리를 거의 사용 하지 않음 비교 정렬 - 상대적 크기관계를 통해 정렬 정렬 알고리즘 선택 정렬 삽입 정렬 거품 정렬 힙 정렬 퀵 정렬 합병 정렬 최선 n^2 n n nlogn nlogn nlogn 평균 n^2 n^2 n^2 nlogn nlogn nlogn 최악 n^2 n^2 n^2 nlogn n^2 nlogn 메모리 1 1 1 1 logn ~ n n 안정 X O O X X O 제자리 O O O O O X 비교 O O O O O O

article thumbnail
[자료구조] Comparison Sort, In-place Sort (비교 정렬, 제자리 정렬)
자료구조 2021. 3. 2. 15:17

비교 정렬 하나의 추상적인 비교 동작을 통해 목록 요소들을 읽어내는 정렬 알고리즘 데이터들간의 상대적 크기관계만을 이용해서 정렬하는 알고리즘 데이터들간의 크기 관계가 정의되어 있으면 어떤 데이터에든 적용가능 ex) 삽입정렬, 선택 정렬, 거품 정렬, 힙 정렬, 병합 정렬, 퀵 정렬 ... 시간복잡도가 O(nlogn)보다 빠를 수 없음 비비교 정렬 데이터들간의 상대적 크기관계로 정렬하지 않고 데이터에 대한 사전지식을 이용하는 정렬 알고리즘 ex) bucket sort, counting sort, radix sort 제자리 정렬 정렬에 추가적인 메모리 공간이 들지 않음 (거의 무시할 정도의 메모리를 사용) ex) 삽입, 선택, 버블, 퀵, 힙

article thumbnail
[자료구조] Stable Sort, Unstable Sort (안정 정렬, 불안정 정렬)
자료구조 2021. 3. 2. 14:08

안정 정렬 알고리즘은 반복되는 요소를 입력 때와 동일한 순서로 정렬 불안정 정렬 알고리즘은 반복되는 요소를 입력 때와 동일한 순서로 정렬을 보장하지 못함 위의 그림에서 처럼 중복되는 값이 있을 경우 안정정렬은 정렬 후에도 중복된 값들이 이전 정렬의 순서를 유지합니다. 그에 반해 불안정 정렬은 중복된 값들이 이전 정렬의 순서가 유지 되지 않을 수 있습니다. 대표적인 정렬 삽입 정렬 - 안정 버블 정렬 - 안정 합병 정렬 - 안정 선택 정렬 - 불안정 퀵 정렬 - 불안정 힙 정렬 - 불안정

article thumbnail
[C++] 프로그래머스 - 후보키
알고리즘 2021. 3. 1. 16:51

2019 KAKAO BLIND RECRUITMENT (2019 카카오 블라인드 채용 문제) 릴레이션이 주어지고 후보키를 구하는 문제입니다. 후보키는 유일성과 최소성이 만족되어야합니다. 유일성은 아래의 학번과 같이 값들이 중복되지 않는 것을 의미합니다. 학번과 이름을 같이 사용하면 유일성은 만족하지만 최소성이 만족하지 않습니다. 후보키는 가장 작은 형태를 유지해야합니다. ex) 학번 - O, 학번, 이름 - X, 학번, 전공 - X, 학번, 이름, 전공 - X 이름,전공 - O, 이름, 전공, 학년 - X (전부 유일하지만 X인 것들은 최소성에 부합하지 않음) 먼저 유일성이 만족하는 조합들을 전부 찾은후에 최소성이 만족되지 않는 것들만 빼주어서 문제를 해결했습니다. 유일성이 만족하는 조합을 찾기위해 DFS..

검색 태그