일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- SQL
- Til
- PCA
- stored function
- 컴퓨터 과학이 여는 세계
- 문제풀이
- 프로그래머스
- 퓨처셀프
- 엘런 튜링
- Stored Procedure
- Recommender system
- mysql
- 백준
- CS
- 선형대수
- 한 권으로 읽는 컴퓨터 구조와 프로그래밍
- 멀티스레딩
- 다시 왔다!
- 혼자 공부하는 SQL
- 2023
- computer science
- FastAPI
- Django
- 덴드로그램
- 1463
- 미래혁신대전
- MVT
- WIL
- Programmers
- JP Study
- Today
- Total
Growth Hoon
20230810_TIL_프로그래머스/알고리즘 본문
화요일 스터디 면접 이후로 풀기시작한 프로그래머스 Level 0 문제,
오늘은 따로 통계학 용어 개념을 알아보거나 머신러닝 개념을 알아보진 않았다..
프로그래머스 문제만 풀었을 뿐 !..
오늘의 한 줄 TIL : 프로그래머스 문제를 풀면서 구현을 못한 코드 살피기
문제 1 ( 배열의 길이를 2의 거듭제곱으로 만들기 ) : https://school.programmers.co.kr/learn/courses/30/lessons/181857
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해당 문제를 푸는데 **을 사용하여 풀이는 생각했으나 구현해내지 못하였다..
구글링을 해서 풀었는데 그 중 비트의 논리연산을 통해서 풀이 방법을 보고 경악했다 !..
이것이 CS를 배워야 하는 이유 중 하나일 수 있다는 생각이 들었다.
참고 블로그 : 1. **을 사용한 풀이 // 2. 비트연산을 이용한 풀이
문제 2 (이진수 더하기) : https://school.programmers.co.kr/learn/courses/30/lessons/120885
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해당 문제는 format과 int(str,2)를 이용해서 풀었다.
format을 이용 안하면 어떻게 푸는지 궁금하여 찾아보았다.
def solution(bin1, bin2):
answer = ''
corre = int(bin1,2) + int(bin2,2)
answer = str( format(corre,'b') )
return answer
참고 블로그 : 2진수 변환 다양한 풀이
문제 3 ( 소인수분해 ) : https://school.programmers.co.kr/learn/courses/30/lessons/120852
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해당 문제는 소수를 구해서 리스트에 넣고, 그 소수가 n의 인수 인지 확인하는 코드로 풀었지만
더 빠르다는 에라토스테네스 체의 구현을 못해서 찾아보았다.
def solution(n):
answer = []
prime = []
# 소수인 수를 prime에 넣기
for num in range(2,n+1):
cnt = 0
for i in range(2,int(num**0.5)+1):
if num % i == 0:
cnt = 1
break
if cnt == 0:
prime.append(num)
# 소수가 n의 인수 인지 확인
for p in prime:
if n % p == 0:
answer.append(p)
return answer
참고 블로그 : 에라토스테네스의 체 구현
문제 4 ( 구슬을 나누는 경우의 수 ): https://school.programmers.co.kr/learn/courses/30/lessons/120840
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해당 문제를 조합으로 풀어야 한다는 것을 알고 있었지만,,
무식하게 python 기본 라이브러리인 itertools의 combinations를 사용하니 시간 초과가 발생했다 !
그러고 문제의 아래 부분을 보니 힌트가 있어서 팩토리얼만 구현 하면 되는구나 ! 했지만 ..
재귀를 사용하는 팩토리얼을 구현하지 못해서 찾아보았다 ㅠㅠ
[ 재귀는 항상 찾아보아도 어렵다 :( ]
참고 블로그 : 팩토리얼 구현
오늘의 회고록
- 나는 생각을 구현하는데 약한 것 같다.
- 파이썬의 내장 라이브러리가 너무 잘 되어 있고, 객체도 너무 잘만들어 진 것 같다. (파보면 더 성장할 수도?...)
- 문제 1번에서 비트와 논리연산을 통해 문제를 해결 한 것을 보고 CS의 중요성을 깨달았다.
- 이번주 안으로 Level 0 완료하자 !
코딩(?)를 위한 앞으로의 공부 방향
- 생각을 구현할 수 있도록 연습을 많이하자
- 재귀 !!!!!!! 이 부분을 공부 많이 해야할 듯 하다.
'TIL_Today I Learned' 카테고리의 다른 글
20230813_TIL_파이콘 2일차 (0) | 2023.08.13 |
---|---|
20230812_TIL_파이콘/스터디 (0) | 2023.08.12 |
20230811_TIL_논리 연산/미니강의 자료준비 (1) | 2023.08.11 |
20230809_TIL_통계 공분산/상관계수/자유도 개념 (2) | 2023.08.09 |
20230808_TIL_동적 계획법(Dynamic Programming) (0) | 2023.08.08 |