Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[230809] PGS 다트게임, 뉴스클러스터링 - 2문제 #92

Merged
merged 8 commits into from
Aug 16, 2023

Conversation

HyowonSin
Copy link
Contributor

230809 19:10 ~ 20:40

  • 2번 문제 테스트 케이스 하나를 못 풀었따
  • 함수로 빼서 가독성을 올려 보자
  • IDE 를 쓰지 않는 환경을 고려해보자
  • 브랜치를 쓰던 것을 써서 커밋이 딸려간다

우선순위 큐라거나 while 문 등으로
이렇게 저렇게 시도하다 못 풀고
답을 봐버렸습니다

재귀를 생각은 했었지만 잘 못 써서..
재귀가 익숙하지 않네요 ㅠㅠ

백트래킹을 검색하니 주로 재귀로 푼다고..
문제를 여럿 풀어봐야겠네요..

유형: 백트래킹
난이도: 실버 3
알고리즘이 요즘 어렵습니다 ㅠ
백트래킹은 탐색 느낌이 있는 것 같네요..
1번 문제에서 스트링으로 저장하던 방식을 가져온 탓인지
중복 가능에서 고생을 했는데요

중복이 되지만 개수 제한이 있던 터라
자기 자신의 뒤 부터 돌도록 했습니다

set으로 묶어서 출력했더니
문자열이라 9 보다 10이 앞으로 가서 계속 틀렸습니다

미리 정렬을 하고 check 용 리스트를 만들어서
if i not in check 으로 순서대로 출력하니
출력하니 중간에 시간 초과가 났고..

결국 map 을 이용하여 숫자를 정렬하고 묶는 식으로 했습니다.
sorted(set(answer), key=lambda x: list(map(int, x.split())))
이게 더 났군요..
뭔가 힘들게 풀어서 걱정이네요..

유형: 백트래킹
난이도: 실버 2
선을 따라간다는 느낌으로 set 을 이용하여 갈 수 있는 모든 점을 모아봤습니다.
엄청난 for 문으로 한번에 맞았지만 시간이 2484ms 가 나와서
탈출문을 추가했습니다 시간이 64ms 로 확 줄었네요

그냥 풀어보긴 했는데
플로이드-워셜 알고리즘 공부를 하는 것이 좋을 것 같습니다..

유형: 그래프 이론, 그래프 탐색, 플로이드-워셜
난이도: 실버 1
길찾기 느낌으로 좀 풀어보려 했는데
알고리즘이 기억이 잘 나지 않았습니다.

그래프를 넣어서 하다가 보니
첫 시작점을 찾는 for 문이 하나 더 들어갔었는데 시간 초과가 났습니다.
set 으로 바꿔보니까 바로 시작이 가능해서 그 차이가 있던 것 같습니다.

파이썬에서 재귀를 쓸 경우 호출이 너무 많으면 리커전 에러가 뜨는데
시간만 괜찮다면
sys.setrecursionlimit(10**9)
이런 걸 붙여서 넘어가는 게 가능했습니다.

그리고 재귀나 while 같은 루프에선
탈출문이 중요한데 자꾸 빠뜨려서 나중에야 문제를 찾았습니다.

하지만 다익스트라 같은 알고리즘을 익혀 두는 것이 나을 것 같습니다.

유형: 그래프 이론, 그래프 탐색, 너비 우선 탐색, 데이크스트라
난이도: 실버 2
3개였고 복사/붙여넣기가 가능해서
노가다로 풀었는데 좀 너무했나
10 때문에 다시 풀었었다
정렬하고 읽어가며 비교했다.
set 이 중복이 되기 때문에
정렬해서 비교했다.

마지막에 끝까지 안 돌아서 처리하다가
같은 길이 처리가 안 돼서 고생했다.
@HyowonSin HyowonSin self-assigned this Aug 9, 2023
@HyowonSin HyowonSin changed the title [230809] PGS 알고리즘 문제 풀이 [230809] PGS 다트게임, 뉴스클러스터링 문제 풀이 Aug 9, 2023
@HyowonSin HyowonSin changed the title [230809] PGS 다트게임, 뉴스클러스터링 문제 풀이 [230809] PGS 다트게임, 뉴스클러스터링 - 2문제 Aug 9, 2023
@HyowonSin HyowonSin added the PGS label Aug 9, 2023
@HyowonSin HyowonSin linked an issue Aug 10, 2023 that may be closed by this pull request
@HyowonSin HyowonSin closed this Aug 11, 2023
@HyowonSin HyowonSin deleted the 230809 branch August 11, 2023 13:35
@HyowonSin HyowonSin restored the 230809 branch August 12, 2023 01:21
@HyowonSin HyowonSin reopened this Aug 12, 2023
@JeonHyoChang JeonHyoChang merged commit 865fa33 into CodeSquad-2023-BE-Study:main Aug 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

230809_프로그래머스
2 participants