일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 테코테코
- sw expert academy
- createSlice
- 매일메일
- 항해플러스
- Python
- 항해99
- redux
- JavaScript
- axios
- SW
- react-redux
- 프로그래머스
- react
- programmers
- java
- maeil-mail
- redux-saga
- 자바
- C++
- Get
- 이코테
- redux-toolkit
- react-router
- 리액트
- Algorithm
- 코딩테스트합격자되기
- useDispatch
- 알고리즘
- json-server
- Today
- Total
목록Python (143)
Binary Journey
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d0CExP/btrpcOH5ZpY/ijgE9B6IK8zjEyAXk5wnD0/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def solution(people, limit): answer = 0 people.sort() start, end = 0, len(people) - 1 while start
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/TQqRH/btrnGjJ2Yft/EAo7bHkkQlj6kXAVwktJF0/img.png)
영상: https://youtu.be/m-9pAwq1o3w * 시간복잡도까지 나와서 알아두면 좋을 거 같아 캡쳐해옴 + 파이썬에서는 removeAll을 제공하지 않아 removeAll을 사용하고 싶다면 사용자함수를 따로 만들어야 함 * 튜블은 리스트와 비슷하게 생겼으나 변수 재할당 불가능, 인덱스별 원소 할당 불가능 * 리스트보다 메모리 소비가 적음 * python의 dict에서 keys, values 는 javascript의 Object.keys(객체), Object.values(객체) 랑 비슷 * 집합 자료형 참고사항 # unpacking a, b, c = input().split() # packing import sys # 문자열 입력받기 data = sys.stdin.readlin().rstrip..
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def n_decimal(n, q): base = "0123456789ABCDEF" # 나올 수 있는 값 n, mod = divmod(n, q) if n == 0: return base[mod] return n_decimal(n, q) + base[mod] # 나머지 index를 이용하여 string 더하기 def solution(n, t, m, p): answer = '' temp = '' for i in range(m * t): # 나올 수 있는 모든 string 개수 = m 명 * t 개 temp += n_decimal(i, n) while len(answer) < ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dx5Jag/btrnfAlIZKw/1O3tVkOH9G9agHKmJTrGnK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def solution(n): answer = n while(True): answer += 1 if str(bin(answer)).count("1") == str(bin(n)).count("1"): break return answer * bin은 2진수로 바꿔주는 함수다. ** Javascript function solution(n) { let answer = n while (true) { answer++ if ((answer.toString(2).match(/1/g) || []).length === (n.toString(2).match(/1/g) || []).length..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/eq7VQc/btrnlme9aGd/DHo2a5PBjVxghK71Hmv4q0/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 자바스크립트로 먼저 풀던 내가 이젠 파이썬으로 먼저 푼다 파이썬이 훨씬 간편함 ** Python (+5) def solution(s): r = "".join(s.split("()")) return r == "" or (r.count("(") == r.count(")") and r[0] == "(" and r[-1] == ")") 정규식 안 쓰고 풀기 성공! (아래 자바스크립트 취향 저격 코드를 파이썬으로도 풀었는데 위의 식이 속도가 더 빨랐다.) def solution(s): pair = 0 for c in s: pair += 1 if c == "(" else -1 if pair < 0: ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ehQlVs/btrm9EIp7bd/KJ6eJiAKmdo8y0hlcEeV8k/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 푼 사람들이 왤케 적은지 알겠다. 쉬운 거 같은데 막상 해보면 어려움 처음에 index도 따로 받아서 들어온 행마다 max값을 구해주고 그 인덱스에 해당하는 다음 행들의 열 값을 0으로 바꾼 다음 max 값을 구해주는 방식으로 하려 했는데 만약 다음 행의 max 값이 이전 행의 max값보다 클 때 구멍이 생겨 최댓값을 구할 수 없게 된다. 구글링해봤더니 첫 행의 max값을 다음 행에 더해주는 것으로 하는 방식이 최적인 것 같았다. (같은 열인 경우 제외) def solution(land): for i in range(1, len(land)): for j in range(len(land[0]..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Mssem/btrnbJQluy5/zF3RGb4STkEdbtJEh8nl00/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Python def solution(n): answer = 0 for i in range(1, n + 1): _sum = 0 for j in range(i, n + 1): _sum += j if _sum == n: answer += 1 break elif _sum > n: break return answer 가장 많은 추천을 받은 풀이 def solution(n): return len([i for i in range(1,n+1,2) if n % i is 0]) 근데 반례도 있다고 댓글이 시끌시끌하다. ** Java class Solution { public int solution(in..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cQqat5/btrmALs7hKG/acvTSE4EmL9A7BW5LeLLJK/img.png)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript function solution(arr1, arr2) { let answer = [] for (let i = 0; i < arr1.length; i++) { let arr = []; for (let j = 0; j < arr2[0].length; j++) { let sum = 0 for (let k = 0; k < arr2.length; k++) { sum += arr1[i][k] * arr2[k][j]; } arr.push(sum); } answer.push(arr); } return answer; } ** Python (+3) def solution(arr1, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cdN7ap/btrlV1E0GDf/qLWNPcfNogCrVbeVnhLZQ0/img.png)
34강에 대한 리뷰 https://www.inflearn.com/course/algorithm-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5/lecture/12363 알고리즘의 개요와 실습 환경 구축 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 대표적인 문자열 매칭 알고리즘 모든 경우를 비교하지 않아도 부분 문자열을 찾아줌 접두사와 접미사의 개념을 활용함: 접두사와 접미사가 일치하는 최대 길이를 구함 ** Python def make_table(pattern): pattern_len = len(pattern) table = [0 for i in r..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b5PlMw/btrlOWcKjIA/OMrNRwSQ0IxszfglhikpT1/img.png)
33강에 대한 리뷰 https://www.inflearn.com/course/algorithm-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%8B%A4%EC%8A%B5/lecture/12362 알고리즘의 개요와 실습 환경 구축 - 인프런 | 학습 페이지 지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요.... www.inflearn.com 하나 씩 확인하는 가장 단순한 알고리즘 단순히 모든 위치에서 모든 문자열이 같은지 확인하므로 O(N*M)의 시간복잡도를 가짐 효율적이진 않음 ** Python def find_string(parent, pattern): parent_len = len(parent) pattern_len = len(patter..