전체 글

또렷한 기억보다 희미한 연필자국이 낫다
PS (Problem Solving)/Programmers

[프로그래머스] 주차 요금 계산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - bucket 활용 - 00분에 입차할 경우 정확한 시간을 측정하기 위해 car 초기 값을 -1로 설정 - 올림을 위해 math.ceil() 사용 # fees = [기본 시간(분), 기본 요금(원), 단위 시간(분), 단위 요금(원)] import math def solution(fees, records): car = [-1] * 10000 time = ..

PS (Problem Solving)/Programmers

[프로그래머스] 두 큐 합 같게 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - 시간복잡도가 중요한 문제이다. - deque를 사용하지 않으면 시간초과에 걸린다. - sum을 사용하여 풀었지만 시간복잡도에 걸려 sum값에 +, -로 합계를 조정해 주었다. - 큐의 길이 *3 보다 많이 계산할 경우 -1을 반환한다. from collections import deque def solution(queue1, queue2): queue..

Tip

[Mac] 맥에서 하위 폴더 생성하는 방법

Window window 환경에서 cmd 창에서 하위 폴더를 생성할 경우는 아래와 같이 입력한다. mkdir a\b\c 그 결과 a폴더 안에 b, b폴더 안에 c라는 폴더가 생성된다. 주의할 점은 폴더 경로를 역슬래쉬( \ ) 또는 ₩를 사용하여 구분한다. 하지만 mac에서는 위와 같은 명령어를 사용할 경우 우리의 예상처럼 폴더가 생성되지 않는다. 그렇다면 mac 환경에서는 어떻게 해야할까? Mac Mac 환경에서 mkdir의 구조는 아래와 같은 형태로 이루어져 있다. mkdir [옵션] [디렉토리 이름] mac에서는 window와 달리 슬래쉬( / )를 사용하여 폴더 경로를 구분한다. 폴더 생성(기본) mkdir a 여러개의 폴더를 한꺼번에 생성하는 경우 mkdir '디렉토리 이름 1' '디렉토리 이름..

PS (Problem Solving)/Programmers

[프로그래머스] 게임 맵 최단거리

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - BFS 문제 def solution(maps): N = len(maps) M = len(maps[0]) q = [(0, 0, 1)] visit = [[0] * M for _ in range(N)] # N, M 헷갈림 주의 visit[0][0] = 1 answer = -1 while q: x, y, cnt = q.pop(0) if x == (N-1) and y == (M-1): # 최종..

PS (Problem Solving)/Programmers

[프로그래머스] 성격 유형 검사하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - MBTI 유형 검사와 같은 내용 - hash map을 사용하여 점수 기입, 결과 출력 python def solution(survey, choices): answer = '' score = {'R': 0, 'T': 0, 'C': 0, 'F': 0, 'J': 0, 'M': 0, 'A': 0, 'N': 0} # 입력값 비교 for i in range(len(survey)): if ch..

React

[React] Fragment란? - 단축문법, key가 있는 Fragments

Fragment란? React에서 컴포넌트가 여러 엘리먼트를 반환하는 패턴을 자주 볼 수 있다. Fragments는 DOM에 별도의 노드를 추가하지 않고 여러 자식을 그룹화할 수 있다. 다음은 Fragment을 사용하는 방법이다. Fragment 안에 render하고 싶은 child를 넣어주면 된다. // Fragment의 기본 구조 render() { return ( ); } example 더 정확한 이해를 위해 예시를 통해 알아보자. 예를 들어, 아래와 같이 table에 ‘Hello World’를 출력하고 싶다고 가정한다. Hello World 우리가 위와 같이 출력하고자 하는 경우 아래와 같이 Table과 Columns를 구분하여 생성한 후 Table안에 Columns를 생성하고자 할 것이다. cl..

PS (Problem Solving)/Programmers

[프로그래머스] [1차] 비밀지도

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17681?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설계 - bin 함수를 유용하게 사용했다. - map1과 map2를 생성하는 코드가 같아 하나로 묶고 싶었다. # 처음 제출 코드 def solution(n, arr1, arr2): map1, map2 = [], [] # map1 생성 for i in range(n): data = list(bin(arr1[i])) # ex) 0b10100 data.pop(0) ..

React

[React] onKeyUp, onKeyDown, onKeyPress 차이

차이점 onKeyUp, onKeyDown 키를 누르고 떼는 동작 자체에 반응한다. 인식 가능 : 문자, 숫자, Ctrl, Shift, Alt, F1~F12, Scroll Lock, Pause, Enter 인식 불가능 : 한/영, 한자, Print Screen onKeyUp, onKeyDwon는 keycode를 사용하여 특수키를 제외한 모든 키를 인식한다. onKeyPress 실제로 문자가 입력되었을 때 반응한다. 인식 가능 : 문자, 숫자 인식 불가능 : Ctrl, Shift, Tab, Alt, F1~F12, Scroll Lock, Pause, Enter, 한/영, Print Screen onKeyPress는 ASCII 값으로 사용되서 shift, ctrl 같은 키는 인식하지 못한다. keyCode //..

PS (Problem Solving)/Programmers

[프로그래머스] 약수의 개수와 덧셈

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(left, right): answer = 0 for number in range(left, right + 1): cnt = 0 for i in range(1, number + 1): # 하나씩 약수의 개수를 구한다. if number % i == 0: cnt += 1 if (cnt % 2) == 0: # 약수의 숫자가 짝수개일 경우 answer += number els..

PS (Problem Solving)/Programmers

[프로그래머스] 폰켓몬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(nums): n = len(nums) // 2 num_set = list(set(nums)) # 포켓몬 중복 제거 if n

캐럿노트
기록하는 블로그