일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- 코테
- 백준 2667
- 노드개발
- 노드개발자
- email인증
- springboot
- 너비우선탐색
- 노드프로젝트
- 백준
- 프로그래머스
- Java
- 이메일인증
- 코딩테스트
- 코딩
- 실버5
- BFS
- nodejs
- 브실이의입시전략
- 깊이우선탐색
- 자바
- static final
- 1260
- Python
- DFS
- 알고리즘
- SWEA
- 앱개발
- 쪽지기능
- Gmail인증
- Today
- Total
목록코딩테스트 (5)
데옹의 블로그
생각하는 것 자체는 어렵지 않았을 것입니다. 그냥 입력된 과목들 빼내고 그 중에서 높은 값 몇 개, 작은 값 몇 개 더해주면 끝나는 문제죠. 전 인터넷에 잘 나오지도 않는 문제를 블로그에 적는 것을 좋아합니다. 관종이라서요.. 암튼.. 갑니다. 제 전략은 이렇습니다. hashmap을 사용하고, 여기서 key에 String을 넣었습니다. K개 만큼 값을 받아 일치하는 key-value 자체를 삭제하고 남은 값들을 values로만 뽑아서 정렬 후 리스트에 넣었습니다. (왜냐면 String 즉 key값들은 딱히 필요가 없다고 생각해서요) 이후에 그냥 큰 값들 M - K개, 작은 값도 그만큼씩 더하고 끝냈습니다! 아래 코드는 이 설명을 구현한 것입니다. import java.io.BufferedReader; i..
문제를 제대로 읽지 않으면 경로 탐색이라고 생각이 되는 문제입니다. 하지만 그냥 별 거 없는 문제였죠? 간단한 구현 문제였던 것 같습니다만.. (알고리즘 잘 모름) 생각해야 할 것들은 아래와 같습니다. 이건 한 칸씩 가는 문제가 아닌, 경로에 문제가 있다면 애초에 가지를 말아야 합니다. 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..