일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩
- email인증
- 프로그래머스
- 너비우선탐색
- 코딩테스트
- 노드프로젝트
- 이메일인증
- 실버5
- 앱개발
- 노드개발
- 노드개발자
- 자바
- 브실이의입시전략
- Gmail인증
- 쪽지기능
- Java
- springboot
- Python
- 백준 2667
- 알고리즘
- DFS
- BFS
- 파이썬
- 코테
- SWEA
- 깊이우선탐색
- 1260
- static final
- nodejs
- 백준
- Today
- Total
목록파이썬 (6)
데옹의 블로그
문제를 제대로 읽지 않으면 경로 탐색이라고 생각이 되는 문제입니다. 하지만 그냥 별 거 없는 문제였죠? 간단한 구현 문제였던 것 같습니다만.. (알고리즘 잘 모름) 생각해야 할 것들은 아래와 같습니다. 이건 한 칸씩 가는 문제가 아닌, 경로에 문제가 있다면 애초에 가지를 말아야 합니다. N,S를 잘 보고 풀어야 합니다. N은 북쪽, S는 남쪽이라 헷갈릴 수 있지만 N은 y축 숫자를 줄여야하고, S는 y축 숫자를 늘려야 합니다. 반환 값이 [세로 좌표, 가로 좌표] 입니다. 위에 것들만 신경쓰면 진짜 쉬운 문제였습니다. 쓰잘데 없는 설명은 치우고 그냥 코드에 주석 달겠습니다. 귀찮아도 하나씩 읽어보면 이 사람이 왜 이렇게 풀었나 알 수 있을 것이라 생각됩니다! 피드백 마구마구 하세요. def solutio..
필요 없는 것들 다 지우고 남은 숫자들 중 가장 많이 나온 순서대로 튜플을 이룰 것이라 생각했습니다. 이유는 그냥 문제 예시 보다 보면 알 수 있는데, 1개 짜리엔 a1만 들어갈 수 있고, 2개 짜리엔 a1,a2가 들어갈 수 있기 때문입니다. 아래 코드는 걍 한 줄로 끝낼 수 있을 것 같아 작성했습니다.. Counter로 element의 수를 다 계산하고 most_common()으로 정렬한 다음에 key값들만 뽑아온 겁니다. (리스트 컴프리헨션) from collections import Counter def solution(s): return [i[0] for i in Counter(list(map(int,s.replace('{{','').replace('},{',',').replace('}}','')..
첨에 문제 제대로 안 읽고 풀다가 '이렇게 쉬운 문제라고..?' 해서 다시 푼 문제입니당. 다시 풀어도 좀 쉽긴 했어요. 조건을 몇 개 생각해보니 바로 풀릴 것 같아 작성했습니다. 조건은.. 문자열이 들어왔을 때, 펠린드롬이 2개 이상이면 1개만 사용 가능하다는 것 즉, 이 말은 문제 안에 팰린드롬 문자열이 하나라도 있는지만 보면 된다는 것입니다. 펠린드롬이 아닌 것들을 모아놨을 때, 그 중에 반대로 뒤집었을 때 맞는 것이 없으면 걍 빼도 된다는 것 예를 들어 'abb', 'cbs', 'dsa', 'bba' 가 있으면 'abb', 'bba'만 남겨도 됩니다. 펠린드롬을 모아놓은 리스트를 A, 아닌 것을 모아놓은 리스트를 B라고 할 때, 어차피 A는 많아도 하나만 사용이 가능할 것이고.. B는 `조건2`를..
이 문제는 보자마자 걍 DFS로 풀어야겠다는 생각을 했습니다. 바로 풀어봅시다. 처음에 한 생각은 들어가서 집을 철거해버리고 철거한 만큼의 수를 세어 리스트에 저장하면 되겠다 싶었습니다. 철거해버리면 다음에 그 곳을 셀 필요가 없어지니까요 ㅋㅋ ^_^ 위 사진이 정말 적절하다고 생각해서 첨부해봤어요... 철거 해버리면 다시 dfs로 탐색할 때 탐색 못 하니까요. 분명 있었는데... 사라졌으니까 갯수를 셀 수가 없죠... (visited를 사용하지 않아도 되는 이유가 됩니다) 암튼 이 단순한 생각을 그냥 코드로 끄적여봤습니다. from collections import deque import sys input = sys.stdin.readline n = int(input()) def dfs(x,y): gl..
아시겠지만, 간단하게 1번 노드와 연결된 노드의 갯수만 세면 되는 문제입니다. 구구절절 잡다한 설명은 치우고 바로 시작합시다. 우선 생각해야 할 것들이 뭐가 있을까요? 바로 1번과 직접적으로든 간접적으로든 연결이 되어있지 않다면 그건 확인할 필요가 없다는 걸 생각해야죠! 그리고, 1번과 관계가 있는 노드는 모두 카운트 해야합니다. 근데 또 생각해보면 쉽더라고요. 왜냐면 그냥 1번부터 시작했으니까 visited 된 (방문 처리 된) 것들을 세보면 되지 않을까요? 생각은 다 했으니까.. 어떻게 구현을 해볼까 생각을 해봐야죠. 근데 dfs를 할 때, graph라는 list를 만들어서 했었습니다. 그래서 연관된 것들을 계속 찾아갔죠. 그러니까 dfs가 완성이 되었고요.. 그러면 저희는 그냥 graph[1]번을 ..
DFS와 BFS를 공부 중인데, 이론적으로 이해하는 건 되지만 계속 헷갈려서 코드만 정리하면서 써보려구요. 갑니다.. 더 친절한 설명을 원하면 다른 블로그를 참고해주세요! from collections import deque from sys import stdin input = stdin.readline # 입력을 받는 곳입니다. n,m,v = map(int, input().split()) # 1. 그래프 초기화 ## 인덱스를 1부터 시작하기 위해서 n+1 을 해줍니다. ## 일반적으로 그래프의 노드 번호는 1부터 시작하는 경우가 많습니다. ## n은 실제 노드의 개수이고, 노드의 번호는 1부터 n까지이니 리스트의 크기를 n+1로 설정하여 ## 인덱스 1부터 n까지 사용할 수 있도록 초기화를 한 것입니다..