개발 67

[Python] 프로그래머스 Lv2 기능개발

풀이 def solution(progresses, speeds): answer = [] complete = [] # 배포일 배열 for i in range(len(progresses)): #1 배포일을 계산해 complete에 대입 temp = (100 - progresses[i]) // speeds[i] if (100 - progresses[i]) % speeds[i] == 0: complete.append(temp) else: complete.append(temp + 1) count = 0 # 배포되는 기능 수 check = complete[0] # 처음 기능 배포일 for j in range(len(complete)): #2 배포되는 기능 수를 계산해 answer에 대입 if check >= com..

개발/PS 2022.01.03

[Python] collections 모듈 (Counter)

collections 모듈의 Counter를 이용하면 key와 value 값을 이용해 카운팅을 잘할 수 있다. 다음을 보면 코드와 결과를 확인할 수 있다. import collections listA = ['a', 'a', 'a', 'b', 'b'] listB = ['a', 'a', 'b', 'b', 'c'] A = collections.Counter(listA) // Counter({'a': 3, 'b': 2}) B = collections.Counter(listB) // Counter({'a': 2, 'b': 2, 'c': 1}) A-B //Counter({'a': 1}) A.keys() //dict_keys(['a', 'b']) 카운팅을 한 후에 key와 value 값을 Dictionary로 받아와..

개발/기타 2022.01.03

[Python] 프로그래머스 Lv1 완료하지 못한 선수

풀이 def solution(participant, completion): participant.sort() completion.sort() for i in range(0, len(completion)): if participant[i] != completion[i]: return participant[i] return participant[-1] #1. 배열을 모두 정렬한다. #2. 배열의 같은 인덱스를 비교해 다르면 그때의 participant의 값이 완주하지 못한 선수이다. #3. 만약 completion의 수 만큼 돌았는데도 모두 같다면 participant의 마지막 값이 완주하지 못한 선수이다. 해시 문제라고 써있는데 방법이 생각나지 않아 정렬로 풀었다. 처음에는 단순하게 for문을 2중으로 돌..

개발/PS 2022.01.03

[CSS] flex 요약 정리

* 붙은게 Default Flex container 속성 1. flex-direction * row, column, row-reverse, column-reverse 2. flex-wrap * no-wrap > 넘치면 넘치는 대로 나감 wrap > 넘치면 다음으로 넘어감 3. justify-content * flex-start 기준점 부터 시작 flex-end 기준점 반대 부터 시작 center 가운데 정렬 space-between 양 끝에 붙이고 균일한 여백 생성 space-around 위의 것에서 끝에 여백 생성 space-evenly 위의 것의 모든 여백이 균일 4. align-items * stretch 수직으로 늘림 flex-start 시작 기준 flex-end 끝 기준 center 가운데 정렬..

개발/Web 2022.01.02

[JS] Object의 Key를 이용하는 방법

Object라는 내장 객체를 사용할 수 있다. 만약 다음과 같은 object가 있다고 하자 example ={ 1:{} 2:{} 3:{} 4:{} 5:{} } // 위의 것은 다음과 같이 불러 사용할 수 있다. example[번호] // => 해당 번호, 즉 key의 {}가 된다 이제 map 함수로 Object를 이용해 키의 목록에 접근하는 방법은 다음과 같다. Object.keys(example).map((key) =>{ // 이렇게 map 함수로 key를 하나씩 뽑아올 수 있다. // 여기서 key를 이용해 원하는 로직을 짜면 되겠다. })

개발/Web 2022.01.01

[React] react-redux의 useSlector() , useDispatch() Hooks

지금까지 connect( , )()를 사용해서 해야하는 줄 알았는데 알고보니 좋은 Hook이 있었다. store에 접근할 때useSlector() , useDispatch() 를 이용해서 값을 받아오고 수정할 수 있다. 아래와 같이 store를 만들어 두었다고 하고 이 훅들을 이용해서 다음을 해보자 1.name을 받아오는 것 2.name의 값을 userA 에서 userB로 바꾸는 것 import { createStore } from 'redux'; const reducer = (state, action) => { if (state === undefined) { return { name: 'userA', }; } if (action.type === 'CHANGE') { return { ...state, n..

개발/Web 2022.01.01

[Python] 프로그래머스 Lv2 타켓넘버 (DFS, BFS)

자료구조를 배우지 않고 풀었기에 깊이/너비 우선 탐색을 잘 몰라 그냥 푼 코드임으로 나중에 다시 공부할 필요가 있는 코드. (그래도 일단 풀었으니 정리해두기) 풀이 def solution(numbers, target): answer = 0 temp = [0] # 1 처음엔 0으로 시작 for i in range(0, len(numbers)): temp2 = [] for j in range(0, len(temp)): # 2 temp2.append(temp[j] + numbers[i]) temp2.append(temp[j] - numbers[i]) temp = temp2 # 3 for i in range(0, len(temp2)): # 4 if target == temp2[i]: answer += 1 ret..

개발/PS 2022.01.01

[Python] 프로그래머스 Lv2 오픈 채팅방

풀이 def solution(record): answer = [] user_data = {} for i in record: temp = i.split() command = temp[0] if command == 'Enter' or command == 'Change': user_data[temp[1]] = temp[2] for i in record: temp = i.split() command = temp[0] if command == 'Enter': answer.append(f'{user_data[temp[1]]}님이 들어왔습니다.') elif command == 'Leave': answer.append(f'{user_data[temp[1]]}님이 나갔습니다.') return answer # 1. 아이디..

개발/PS 2021.12.31

[HTML , JS] data- 속성을 이용해 (기본 event로) 처리하기

HTML의 태그에는 data- 라는 속성이 존재한다. 이는 미리 선언해두면 함수의 기본 event 인자에서 뽑아 쓸 수 있는데 데이터를 선별할 때 사용할 수가 있다. 먼저 속성의 선언을 살펴보자 // data- 이후에 key는 임의로 정한것 이렇게 선언해두면 JS에서 함수의 기본 event로 불러올 수 있다. event.target.dataset 안에 들어있고 (임의의 이름)으로 data 속성의 값을 가지고 올 수 있다. ​ 다음은 배열에서 선별을 위한 함수이다. function onButtonClick(event, items) { const dataset = event.target.dataset; const key = dataset.key; const value = dataset.value; if (k..

개발/Web 2021.12.31