분류 전체보기

·코딩테스트
어려움이라고 적혀있어서 상당히 쫄아이거 얼마나 걸릴까 싶었지만 생각 정리해서 푸니까 금방 풀었다.약간 버블 sort와 비슷하다는 생각이 들었는데 결론적으로 누가 어디로 가는지 확인한 다음그 결과를 기반으로 얼마나 움직여야 하는지backtracking 하면 된다.  결과적으로 가야 하는 자리가 현재 자리에서왼쪽인지 오른쪽인지에 따라 swap 방향을 다르게 해 주면 된다.import sys# 입력 처리 단계n, m = list(map(int, sys.stdin.readline().split()))lines = []people = [i for i in range(1, n+1)]for _ in range(m): lines.append(list(map(int, sys.stdin.readline().split..
·
AWS로 EC2까지 잘 설치해서 접속도 되길래잘 한 줄 알았으나 아파치를 설치하는 데 sudo yum install httpd -y 엄청 오래걸리고 error: failed to download metadata for repo 'amazonlinux':이 에러가 뜨면서import에 실패했다고 뜨길래 뭔지 알아봤는데  Amazon Linux 2023 AMI로 선택했더니 안된다그 밑에 있는 걸로 하니까 되는 줄.. 알았는데 안된다One of the configured repositories failed (Unknown), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail..
·코딩테스트
🔗 피보나치 수 - 프로그래머스 📌오늘의 학습 키워드코딩을 조금 해봤다 하면 꼭 해봤을 피보나치 수 문제, 재귀로 하지 말고 값을 저장해 가자!✨공부한 내용 본인의 언어로 정리하기재귀 말고 메모이제이션 그니까 기록하면서 마지막 결과를 갖다가 쓰면 된다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지매우 사소한 것만 이야기해보자면 save 하는 배열에서 계속 값을 추가했었다. 근데 그냥 마지막 두값만 저장해도 문제 푸는 데 문제가 없어서 배열 값이 2개로만 유지되도록 수정해 봤다.[🤓문제 해결 코드]def solution(n): if n == 0 or n == 1: return n save = [0, 1] for i in range(2, n + 1): ..
·코딩테스트
굉장히 시간이 오래 걸렸다 호호~~ 처음에는 1) 재귀를 통해 중복을 포함해 모든 경우의 수를 생성하고,2) 중복되는 경우의 수를 빼준다음3) sort를 한번 해주고 각각 이웃하는 선분을 비교했으나 시간초과가 걸렸다.  sort 해주는 것이 시간복잡도를 증가시키는 것 같아 그것을 제거했으나 여전히 시간초과...그래서 해설을 봤다. 여기에서는 중복을 포함해 모든 경우의 수를 생성하지 않고재귀를 두 가지 조건으로 돌려 문제 조건을 만족시켰다.  def recursion(cnt): global candidate if cnt == n: if len(line_bag) > candidate and not check_connect(line_bag): candidate = l..
·코딩테스트
🔗 큰 수 만들기 - 프로그래머스   📌오늘의 학습 키워드자꾸 그리디랑 완전 탐색을 착각하는 나자신... 그리디는 어려운 점이 어떤 방법이 그리디한지 알기 어려워서가 아닐까 싶다.✨공부한 내용 본인의 언어로 정리하기사실 너무 오래 걸려서 다른 분이 짜신 코드를 참고했다. 스택을 이용해 해결했다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지처음에는 재귀로 모든 경우의 수를 탐색 한 다음 큰 수 를 찾으려고 했으나 시간 초과가 떴다.어떻게 해결했는지사실 어떤 것이 큰 수를 만드는 그리디 방식인지 몰라 다른 분들의 코드를 찾아봤고 스택을 통해 해결하는 방법을 찾았다. O(n)의 시간 복잡도를 가지는 방법으로 한 숫자씩 돌아가면서 만약 스택 가장 위에 있는 수가 현재 숫자보다 작으면 다 빼버리..
·코딩테스트
🔗 구명보트 - 프로그래머스   📌오늘의 학습 키워드저번 기수에서 풀었던 문제다. 처음 풀 때 꽤나 힘들었던 걸로 기억한다..✨공부한 내용 본인의 언어로 정리하기그리디 문제로 가장 무거운 사람과 가벼운 사람을 함께 묶어 limit 을 초과하지 않는 다면 보내고 아니면 무거운 사람만 보내면 된다. [🤓문제 해결 코드]from collections import dequedef solution(people, limit): people.sort() people = deque(people) answer = 0 while people: person = people.pop() if people: light = people.popleft() ..
·코딩테스트
🔗 2667. 단지번호 붙이기 - 백준  📌오늘의 학습 키워드BFS인거 같은데✨공부한 내용 본인의 언어로 정리하기dx,dy 에서 배운것도 써봤다. 어제 visited를 사용하지 않았었는데 이번에는 사용해 봤다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지오늘은 냅다 코드를 적지 않고 구성을 하고 진행해 봤다. 역시 훨씬 수월했다.어떻게 해결했는지각 집을 순회하면서 만약 집이 있으면 그 집 근처의 이웃들을 모두 찾는 방식으로 해결했다.[🤓문제 해결 코드]import sysfrom collections import dequen = int(sys.stdin.readline())board = []visited = []for _ in range(n): nums = sys.stdin.rea..
·코딩테스트
🔗 백준 2644 촌수계 📌오늘의 학습 키워드BFS를 통해 해결하는 문제였으나 자료구조에 따른 메모리 차지에 대해서 알게 되었다.✨공부한 내용 본인의 언어로 정리하기결론적으로 dictionary가 list보다 메모리를 많이, 통과가 안될 정도로 많이 차지했다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지촌수를 계산하는 문제로 트리를 이용해 BFS로 해결하는 문제였다. 잘 구현했다고 생각했는데 계속 메모리 초과가 났다.어떻게 해결했는지찾아보니까 나는 dictionary를 사용해 node list를 구현했는데 그게 문제였다. list를 사용하니까 바로 통과했다.무엇을 새롭게 알았는지메모리 사용량 : dictionary > list[🤓문제 해결 코드]import sysfrom collect..
yolang
'분류 전체보기' 카테고리의 글 목록 (12 Page)