https://www.acmicpc.net/problem/2839메모리 31256 KB, 시간 40ms완전탐색이라고 생각하지 않고 그냥 수학적으로 먼저 풀어봤다.조건은 간단하다.k = 5n+3m (이 때 n과 m은 0 이상의 정수) 꼴로 표현할 수 있으면 적어
백준 11726번 링크여기서 모드를 나누는 것을 더하는데에 주목할 것.임의의 정수 x에 대해x = m+n 이라면x/k = m/k+n/k 이므로x%k = m%k + n%k 이다.생각지 못했던 테크닉이다.
vector list(26, 3) 은 초기값이 3인 26개의 벡터를 생성하는 것ASCII는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 숫자, 영문 대문자, 영문 소문자이다. 숫자는 48 ~ 57, 영문 대문자는 65 ~ 90, 영문 소문자는 97 ~ 122이다.
시간이 정말 오래걸린다.array를 이용한 방법이라 array로 풀기 위해 썼지만이것보다 더 나은 방법이 있음int MaxValue; int MinValue를 써서 해당값보다 더 크거나 작은 값이 인풋으로 들어올때마다 갱신하는 방법.N을 입력하고 다음줄에 N에 해당하는
백준 문제는 아니지만 개인적으로 공부하기 위해 DFS, BFS를 파이썬으로 구현했다.https://itholic.github.io/python-bfs-dfs/간단하게 잘 구현한 파이썬 코드가 있어 위 링크를 참조했다.하단은 내 코드, 최하단은 그 사람 코드BF
https://www.acmicpc.net/problem/2283
https://www.acmicpc.net/problem/1012setRecursion을 파이썬 맥스인 10\*\* 6까지 해주는 게 좋음graph(y)(x)visited를 안 쓰고 -1로 표시하는 것도 괜찮은듯.https://hei-jayden.ti
알고리즘은 간단하다.dfs를 색약용 그래프와 본 그래프로 나눠서 실행하면 된다.입력이 이렇게 주어졌을때5RRRBBGGBBBBBBRRBBRRRRRRRR로 받으면 된다.
https://www.youtube.com/watch?v=ZNa9-86uVEA 정형화된 문제 타입들 ( 몇 번 풀다보면 보임)걍 단순무식하게 전부 때려부시기
https://www.acmicpc.net/problem/5427틀린 답참고한 내용: https://2hs-rti.tistory.com/entry/%EB%B0%B1%EC%A4%80-5427%EB%B2%88-%EB%B6%88-%ED%8C%8C%EC%9D
https://www.acmicpc.net/submit/7562/58393966내 힘으로 다풀었다!그것도 30분만에그런데 아무 생각없이 넣은 코드 하나에서 디버깅하는데 오래걸렸다.덜렁거리는 습관 좀 고쳐야할듯.
뭐.. 쉬웠다.주의해야 하는 거라면이 아니라을 써야 한다는점?
1.- 기준 split 받기
문제 자체는 쉬웠지만 은근히 해결방법을 고민하게 만들었다.dp 실행시마다 dplog를 초기화하고 dp에 append하는 방식으로 설계했다.
업로드중..여기서 k 를 쓰는 테크닉때문에 좀 헷갈렸는데, 이 부분은 나중에 한 번 더 복습해보는게 좋을거같다.
파이썬 dictionary 이용sort 후 이분 탐색 이용비교: 파이썬 dict 이용한 기법이 훨씬 빠르다.그렇지만 이분 탐색 기법을 배워두는게 좋으니 복습이 필요함.Sort 알고리즘의 시간복잡도는 o(nlogn) 이라고.Sort 보다도 파이썬 dict를 쓰는게 훨씬
https://www.acmicpc.net/problem/11727그저 배운 테크닉을 썼다.10007로 나눈 나머지를 구하라고 하길래 그 값을 더해주는 식으로 메모리를 아끼기
아래는 내가 짠 코드직속 부하 노드를 dict 형태로 만들어서 자신이 받은 칭찬을 자식 노드들에게 더해줬다.visited 리스트를 만들지 말지 고민했는데, 안 만드는게 맞다.그리고 이건 내가 본 제일 짧은 코드시간 복잡도도 실로 완벽한 코드였다. (아래가 내가 짠 코드
https://www.acmicpc.net/problem/1912딱히 테크닉이랄건 별로 없지만, dp이전에 자기보다 작은 수 중 가장 많이 증가하는 수열을 자기 수열로 가져오는 기술을 썼다.그냥 로직만 읽어봐도 충분할듯
https://www.acmicpc.net/problem/1912주어진 어레이가 전부 음수인 경우, dp에는 -1, 0, 0, 0, 0을 넣지만 리턴할땐 최대값인 0이 아닌, 모든 어레이 중 max 값을 return 해야했다.해당 제한조건이 예시 input에
ㅈㄷㄳ
끝자리수를 나타내기 위해 10\*n 리스트로 표현했다. (이 테크닉을 초기에 생각하지 못해 많이 헤맸다)%1000000 안해줘서 틀렸었다. 이 조건 다시 찾는데도 시간 걸렸다. 항상 문제 조건을 끝까지 따라가도록 하자.0: 4.3 최초 공부1:2:3:
https://www.acmicpc.net/problem/2294 10원을 내는 방법은5원을 하나 내고, 남은 5원을 내는 방법과 (dp5)2원을 하나 내고, 남은 8원을 내는 방법과 (dp8)1원을 하나 내고, 남은 9원을 내는 방법으로 나눌 수 있다.이를
아래 코드는 시간초과 나는 코드다.원인을 아직 모르겠다.정답은 잘 맞게 돌아가는데 시간초과가 나는군.
https://www.acmicpc.net/problem/9084뿌듯하다. 이제 이 정도는 10분만에 푼다.물론 정답율이 66퍼센트니 자만하지 말자.
https://www.acmicpc.net/problem/12865내 코드당연히 틀렸다. 처음에 이걸 동전과 비슷한 사례로 볼 수 있을거라고 생각했는데 그게 아니었다. 반례는 다음과 같다.1이 가장 가치가 높을 경우 1 짜리 짐을 무한히 담기 시작한다.처음엔
sorted_dict = sorted(city_dict.items()) 를 하는 순간 dict를 정렬했지만 list로 아웃풋 된다는거.논리를 찾느라 한참 헤맸는데, 전체 인구수의 1/2 이상 되는 도시를 리턴해주기만 하면 된다.
https://www.acmicpc.net/problem/13164 알고리즘은 대단히 간단하다.세 그룹으로 나눈다고 치면, 가장 차이가 많이 나는 상위 2곳을 자르면 그만이다.너무 쉽게 풀었지만 정답률이 55퍼센트니 방심하지 말자.그러나 이 알고리즘을 풀때 내
https://www.acmicpc.net/problem/13975 이 외에도 복습이 필요한 링크: https://www.acmicpc.net/problem/21758https://sodehdt-ldkt.tistory.com/m/53내용은 그
t일이 목표라면, t일부터 거꾸로 내려가면서 해당 일에 일을 할 수 있을 경우 일을 했을때 얻는 값 vs 일을 안 했을때 얻는 값을 비교한다
https://www.acmicpc.net/problem/2294만약 k원짜리 동전이 있다면 dp(k)=1로 세팅그렇지 않다면 동전 지불 개수 세는 로직처럼 dp(coin)+dp(i-coin)으로 갱신하고 기존 dp 값과 비교그 후 작은 것을 선택이 때 dp
https://school.programmers.co.kr/learn/courses/30/lessons/42885
백준 2812번과 같은 문제다. https://www.acmicpc.net/problem/2812백준에서는 골드 3으로 랭킹되어있지만 프로그래머스는 어째서인지 레벨 2다.https://school.programmers.co.kr/learn/course
https://school.programmers.co.kr/learn/courses/30/lessons/1844?language=python3 우선 아래는 DFS로 해결한 문제다.답은 맞게 나온다. 그러나 결과DFS는 최단거리 측정에는 좋은 방법이 아니다. 답
https://school.programmers.co.kr/learn/courses/30/lessons/43163 changable을 수정한 코드. 전부 정답으로 떴다.그런데 이게 어떻게 가능한거지?당장 이렇게만 돌려봐도 틀린 답이 나온다.프로그래머스는 테스트
https://school.programmers.co.kr/learn/courses/30/lessons/42842for i in range(2, num//2)로 뒀다가 1번 테케만 통과를 못해서 계속 어디가 문젠지 찾았다. num//2+1을 해줬어야 함.
https://school.programmers.co.kr/learn/courses/30/lessons/87946이 문제는 작년 하반기 네이버 파이낸셜 전환형 인턴과 유사한 문제다.
https://school.programmers.co.kr/learn/courses/30/lessons/86971알고리즘은 간단하다.1\. 우선 wires를 dictionay 형태로 만든다. (이때 모든 아이템이 빈 리스트로 초기화되어있는 defaultdict
물론 테스트 코드는 잘 돌아갔다. 그런데 모든 정답을 장렬히 실패했다.여전히 이 코드의 문제가 무엇인지는 잘 모르겠다.그림을 그려보다 알았다. 역시 dp로 풀어야 했던 문제였다.그래서 아래 코드를 돌려보았다.(+ 10000007로 나눈 나머지를 저장하는 과정도 잊지 않
https://school.programmers.co.kr/learn/courses/30/lessons/42895 제일 위에 if N==number: return 1 을 추가해주었다.그랬더니 갑자기 테스트 9번이 통과되고 100점이 나왔다.생각해보자5로 만들
https://school.programmers.co.kr/learn/courses/30/lessons/42746 https://school.programmers.co.kr/learn/courses/30/lessons/42747Try1은 마지막 테스트
https://www.acmicpc.net/problem/1941일단, 모든 S파 학생들을 좌표에 넣어두고 해당 학생들로부터 시작하는 dfs 패스를 돌린다.(탐색 수를 조금이라도 줄이고자 이렇게 했다)그리고 중간에 S파 학생 수가 미치지 못하면 가지치기를 해줬
List sort 리스트 리턴 Heapq 문자열 변환 For문을 이용한 리스트 생성 DFS/BFS에서 많이 쓰이는 테크닉
https://school.programmers.co.kr/learn/courses/30/lessons/43164
https://school.programmers.co.kr/learn/courses/30/lessons/43162
https://www.acmicpc.net/problem/2178 grid의 1부분은 접근할 수 있는 칸이다. 1을 큰 값인 int(1e9)로 초기화한다.최단거리 찾을땐 dfs보다 bfs가 더 빠르다.https://wiselog.tistory.com/
https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=java해당 문제에서 올바르지 못한 괄호가 나올 경우는 다음과 같이 크게 2가지다.괄호 처음이 )로 시작하는 경우짝이 안 맞는 경
기능개발
FILOFIFOBFS에서 자주 사용stack에서는 링크드리스트를 불러올 필요가 없지만 Queue를 사용할 땐 필요하다.
https://school.programmers.co.kr/learn/courses/30/lessons/133024https://school.programmers.co.kr/learn/courses/30/lessons/133025https:/
https://school.programmers.co.kr/learn/courses/30/lessons/77486