알고리즘 공부
-
알고리즘 공부 19일차알고리즘 공부 2023. 1. 18. 05:58
오늘은 딥러닝 프로젝트를 정리하려고 보니 잊어먹은 개념들이 몇개 있어 공부를 끝내고 블로그에 포스팅을 하고 나니 시간이 얼마 없어서 문제를 많이 풀진 못했다. 3문제 정도 풀어보려 했는데 마지막 문제는 자꾸 시간초과가 나서 내일 아침에 머리가 다시 맑아진 상태로 해야할 것 같다. 오늘 정리해볼 문제는 프로그래머스 숫자 카드 나누기 이다. 이것을 정리하는 이유는 제출이 끝난 후 다른사람들의 풀이를 보는데 많은 사람들이 모듈을 이용해 코드를 정말 간략히 적은 것을 보고 모듈의 중요성을 깨달았기 때문이다. def check_impossi(array,a): impossi=True for i in array: if i%a==0: impossi=False return impossi def gcd(a,b): c=b%..
-
알고리즘 공부 18일차알고리즘 공부 2023. 1. 17. 03:56
오늘은 프로그래머스 2단계 5문제를 풀어보았다. 항상 풀면서 느끼지만 같은 2단계지만 난이도가 많이 차이나는 것 같다. 풀었던 5문제 중 가장 시간이 오래 걸렸던 유사 칸토어 문제를 오답노트 해보자. https://school.programmers.co.kr/learn/courses/30/lessons/148652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 r과 l 사이 모든 값에 대해서 0인지 1인지를 확인해 주는 방법을 생각했다. 둘은 최대 차이가 10,000,000에 확인하는 방법은 최대 20이라고 생각했기 때문이다. 그래서 약 2억의 ..
-
알고리즘 공부 16일차알고리즘 공부 2023. 1. 15. 06:14
오늘은 프로그래머스 이모티콘 할인행사 문제를 풀어보았다. 이 문제를 처음 봤을때 떠올린 아이디어는 각각의 이모티콘 별로 10%~40%까지 4가지 경우이므로 총 4^7의 경우를 생각할 수 있었다. 이는 약 16000 정도고 이용자의 최대는 100이므로 시간 복잡도도 충분해 보일 것 같았다. 그래서 나는 dfs문제라고 생각하고 접근하였다. def dfs_emo(users,emoticons,sales,max_list): if len(emoticons)==len(sales): plus_sum=0;sale_sum=0 for i,j in users q=0 for k in range(len(sales)): if sales[k]>=i: q+=emoticon[k]*(1-sales[k]) if q>=j: plus_sum+..
-
알고리즘 공부 15일차알고리즘 공부 2023. 1. 14. 04:38
오늘은 AI tech 1차 시험이 있는 날이었다. 그래서 시험 전까지 알고리즘과 딥러닝 복습을 했다. 1차 시험은 프로그래밍 문제와 딥러닝, 수학 문제들이 출제되었는데 나는 그 중 프로그래밍이 제일 걱정이었다. 딥러닝, 수학 같은 경우는 그래도 전공 수업을 들었어서 어느 정도 지식이 있었던 반면에 프로그래밍은 데이터 분석, 딥러닝 모델 만들기 이외의 알고리즘 공부는 별로 없었기 때문이다. 작년 여름방학에 삼성 SDS 알고리즘 특강을 듣긴 했지만 복습을 해두지 않아 지식 정도만 기억나고 구현은 거의 기억이 나지 않았다. 지금 이렇게 블로그를 작성하는 것도 그 때 복습을 못한 후회 때문이기도 하다. 어쨋든, 그렇게 오늘 1차시험을 봤다. 생각보다 프로그래밍 문제가 어렵지 않아서 나름 열심히 풀고 나온 것 같..
-
알고리즘 공부 14일차알고리즘 공부 2023. 1. 13. 04:54
오늘은 내일 있는 AI tech 시험 준비를 했다. 수학적인 부분은 큰 걱정은 없었지만, 딥러닝의 세부 지식이랑 프로그래밍 테스트가 걱정이 되었다. 그래서 오후엔 딥러닝 공부를 저녁엔 코딩테스트 문제를 풀어봤다. 오늘 오답노트할 문제는 프로그래머스의 전력망 둘로 나누기 문제이다. https://school.programmers.co.kr/learn/courses/30/lessons/86971?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제를 처음 봤을 때는 작은 n값 때문에 그냥 모든 경우에 대해 서로소 집합을 이용해..
-
알고리즘 공부 13일차알고리즘 공부 2023. 1. 11. 03:13
오늘은 내가 약하다고 생각한 DFS/BFS 2문제, 다익스트라 한문제, 그래프 이론 2문제를 풀어보았다. 그 중 가장 시간이 오래 걸렸고 아이디어가 생각 안난 문제를 오답노트 해보려고 한다. https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net 백준 2887번 문제로 처음 보았을 때 떠올랐던 아이디어는 '각각의 행성 간의 길이를 전부 안다면 크루스칼 알고리즘으로 해결 가능하지 않을까?' 였다. 하지만 N이 100,00..
-
알고리즘 공부 12일차알고리즘 공부 2023. 1. 10. 04:57
오늘은 관심있는 교육기관에 지원서를 제출하느라 하루를 대부분 썼다. 그래도 하루에 코딩테스트 문제 5문제는 꼭 풀고 싶어서 그리디 2문제 그래프 2문제 DFS/BFS 1문제를 풀었다. 오늘은 그 중 DFS/BFS 문제 풀이를 써보려고 한다. https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 문제는 경쟁적 전염 문제로 BFS 문제이다. 처음 문제를 딱 봤을 때 BFS문제인 것은 알 수 있었다. 하지만 초 단위로 전염이..