본문 바로가기

파이썬31

[프로그래머스] lv.2 방문 길이 https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 약 2년만에 문제를 풀어봤는데 감을 다 잃었다.. 일단 답을 맞추기는 했는데 이런 그래프 이동 문제는 아래 다른 사람의 풀이 코드처럼 dirction 딕셔너리나 리스트로 정의하고 새로운 좌표는 nx, ny 등으로 표현했었는데.. 차근차근 다시 잘해봅시다!! 풀이는 중복을 없애기 위해 set을 만들었고 움직일 때 마다 (기존 위치, 새 위치)를 담았고, 반대 방향으로 움직이는 경우를 고려해서 1회로 세져야하기 때문에 (새 위치, 기존 위치)를 담았다. 그리고 답은 set길이를 2로 나눈값이다. def solution(dirs): answer =.. 2022. 5. 1.
[Python] Trie - 2018 카카오 : 자동완성 https://programmers.co.kr/learn/courses/30/lessons/17685 코딩테스트 연습 - [3차] 자동완성 자동완성 포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g � programmers.co.kr 풀이 2020 카카오 가사 검색을 응용해서 풀었다. remains 대신 branch를 만들어서 그 노드를 포함하는?사용하는? 단어 수를 저장했다. 1번 테스트케이스(go, gone, guild)의 경우 아래 그림처럼 트리가 만들어진다. Trie에 단어를 삽입한다. 삽입할때 branch의 숫자를 1씩 올려준다. 그리고 다시 단어들을 탐색하는데.. 2020. 9. 9.
[C++, Python] Trie - 2020 카카오 : 가사 검색 https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 1. Python 풀이 1. 우선 단순하게 글자 queries 와 words 글자 비교를 해서 풀었다 글자수가 다르면 continue, ?여도 continue def solution(words, queries): answer = [] for query in queries: cnt = 0 for word in words: if len(query) != len(word): continue else : flag = True for i in range(len(query)): if query[i] == '?': continue elif query[i].. 2020. 9. 9.
[Python] 2133 타일 채우기 https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 풀이 https://lyzqm.blogspot.com/2017/04/2133.html 2133 타일 채우기 백준 2133 타일채우기 https://www.acmicpc.net/problem/2133 1793 타일링 https://www.acmicpc.net/problem/1793 11726 2xn 타일링 https://www.ac... lyzqm.blogspot.com 위에 블로그를 참고했다. 마지막이 될 수 있는 유형은 이 세가지 이다 1,2번은 2가지 유형으로 만들어질 수 있으므로 점화식은 아래처럼 된다.. 2020. 9. 2.
[Python] 1793 타일링 DP https://www.acmicpc.net/problem/1793 1793번: 타일링 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 숫자 0 ≤ n ≤ 250이 주어진다. www.acmicpc.net 풀이 N번째 타일을 채우는 방법 = N-1 타일에 1*2 타일 추가 + N-2 타일에 2*2 타일을 추가하는 방법이다. N-1번째 타일에 1칸을 추가하면 1*2 타일을 붙이는 방법 밖에는 없다. 그리고 N-2번째 타일에서 2*2 타일을 붙이는 방법은 3가지이지만 || 모양으로 붙이는 방법은 (N-1에 1*2 추가하기)와 겹치므로 N-2번째 타일에 ㅁ, = 모양을 추가하는 방법 수를 더하면된다. 그래서 점화식은 memo[i] = memo[i-1] + (memo.. 2020. 8. 31.