TIL💡(277)
-
[AtCoder] Flipping and Bonus(DP)
https://atcoder.jp/contests/abc261/tasks/abc261_d D - Flipping and Bonus AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp DFS로 문제를 풀었는데, 시간이 초과되어서 결국 컨테스트 시간 내에 해결하지 못한 문제이다. [문제 해석] 1부터 $i$번째 코인부터 던져서 만약 head가 나오면 카운터를 1 증가하고, $X_i$ 엔을 받는다. 만약 tail이 나오면, counter를 0으로 리셋하고 돈을 받을 수 없다. 추가적으로 M개의 스트라이크 보너스가 있다. $i$번째..
2022.07.28 -
파이썬의 try~except는 효율적일까?
TL; DR Use try for things that can fail. If possible, avoid try for things you know will fail 회사에서 데이터 전처리 코드를 수정하다가 하나의 날짜를 표현하는 문자열을 DataFrame의 datetime 형식으로 바꾸는 과정 중 데이터에 다양한 형식으로 날짜가 저장되어있음을 알게 되었다. 기존의 코드는 아래와 같은 형식이었다. 이는 데이터의 형식이 크게 2가지임을 전제한 코드이다. try: # 포맷과 함께 pd.to_datetime 호출 except ValueError: # 다른 포맷으로 pd.to_datetime 호출 하지만 알고보니 다른 패턴의 날짜 문자열이 존재하였고, 이에 대한 처리를 어떻게 할 것인지 고민하기 시작했다. 왜..
2022.07.26 -
[프로그래머스] 네트워크(feat. Union-Find)🚨
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아주아주 풀어보는 게 다행인 문제였다. 이 문제를 보자마자 Union-Find 문제라는 점은 알아차렸고, 최적화도 적용했다. 하지만 몇 개의 테스트 케이스가 자꾸 통과하지 못해서 문제가 이상하나? 라고 생각했으나, 내가 이상한 거였다. Testcase #7. 테스트 케이스7번을 통과하지 못한 이유는 union 함수를 잘못 짰다. void _union(int x, int y) { int parent..
2022.07.24 -
[프로그래머스] 타겟 넘버
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 요즘 어려운 알고리즘을 도전하면서 오히려 기본기를 놓치는 기분이랄까... 그래서 DFS를 다시 해보았다. 끝까지 n개의 숫자를 탐색하면서 풀어야 한다. void dfs(vector &numbers, int idx, int value) { if(idx == sz) { if(value == target_g) { answer++; } return; } int num = numbers[idx]; valu..
2022.07.23 -
[AtCoder] Jumping Takahashi 2
https://atcoder.jp/contests/abc257/tasks/abc257_d D - Jumping Takahashi 2 AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 처음에 나는 BFS 방식을 시도하였으나 시간 초과가 발생하였다. 그러나 스터디를 하면서 플로이드 와샬 알고리즘을 이용하면 빠르게 풀 수 있다는 소식을 접했다. 지금까지 자주 풀어보았던 다익스트라 알고리즘은 한 정점에서 모든 정점으로의 최단 경로를 구하는 알고리즘이다. 반면 모든 정점에서 모든 정점으로의 최단 경로를 구하고 싶다면 플로이드 와샬 ..
2022.07.23 -
[AtCoder] Addition and Multiplication2
https://atcoder.jp/contests/abc257/tasks/abc257_e E - Addition and Multiplication 2 AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 뭔가 쉬워보였으나 마음처럼 쉽게 풀리지 않은 문제였다. $x$가 10의 자리 단위로 커지니 최대한 큰 수부터 앞자리에 넣는 것이 유리하다는 생각을 하여서 C 배열의 뒷자리부터 확인하며 $x$를 만들어나갔다. 정말 간단한 Greedy 문제라고 생각했다. 하지만 그렇지 않았다.. 아무리 앞에 큰 9를 넣는다한들 결과적으로 자릿수가..
2022.07.22