알고리즘29 백준 - 23294 웹 브라우저 1 with Python 주저리 주저리 문제 자체는 어렵지 않다. 다만 만약 deque를 생각 못 한다면 난이도가 올라갈지도...? 문제 해결 문제 자체는 일반적인 스택구조로 생각해서 작성하면 되나, 뒤로가기가 맨 앞, 맨 뒤에서 다 빼야하는 케이스가 나온다. 뭘 걱정하리 우리 한테는 deque라는 갓갓이 존재한다. deque를 믿고 작성해보자 코드 import sys from collections import deque input = sys.stdin.readline ''' 뒤로가기 한개 이상 뒤로가기 공간에 있을시 현재는 앞으로 가기에저장 방문한지 가장 최근 페이지 접속 => 그 페이지는 뒤로가기에서 삭제 ==> stack? 앞으로가기 앞으로 가기에 한 개 이상 현재 보고있는 페이지를 뒤로가기에 저장 앞으로 가기 공간에 방문.. 2023. 3. 30. 16924 - 십자가 찾기 with Python https://www.acmicpc.net/problem/16924 16924번: 십자가 찾기 십자가는 가운데에 '*'가 있고, 상하좌우 방향으로 모두 같은 길이의 '*'가 있는 모양이다. 십자가의 크기는 가운데를 중심으로 상하좌우 방향으로 있는 '*'의 개수이다. 십자가의 크기는 1보다 크 www.acmicpc.net 주저리 주저리 빡 구현 + bfs문제라 판단된다. -1 처리를 하는 것이 제일 힘든 문제라 판단된다. 문제 해결 bfs로 하나하나 도는 것이 관건이다. x + dx[i] * k 이런식으로 한칸씩 증가하면서 (+1-1) 단 한번이라도 십자가 모양에서 벗어나는 순간 바로 return을 해버리면 된다. 다만 별이 문제인데, 나는 별을 리스트로 담아둔 후(좌표 기준) 해당 좌표를 bfs로 지나가.. 2023. 2. 28. 1525 - 퍼즐 with Python https://www.acmicpc.net/problem/1525 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net 주저리 주저리 오랜만에 푸는 골드 2문제 bfs문제에서 조금 머리만 유동적으로 생각하면 쉽게 풀린다. 사실 갓이썬이여서 쉽게 풀린거 같긴 하다... 문제 해결 평범하게 bfs를 돌리면 된다. 다만! check하는 변수를 보통 리스트형태로 사용하는데, 이번엔 딕셔너리 형태로 만들어서 사용 하면 된다. 보통 문자열이나 수학적 접근을 하는데, 굳이 이번엔 그럴 필요 없을 것 같다. 왜냐하면 파이썬으로는 딕셔너리의 key값에 현재 map을 str을 이용해 문자열로 만들 수 있기 때.. 2023. 2. 28. 그리디 - 1931 회의실 배정 with Python https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 해결 그리디 문제 중 대표적인 문제라 생각 된다. 간단하게 생각해보자 앞의 회의실이 끝나지 않으면 뒤의 회의실은 시작하지 못한다. 즉 앞에서 끝나는 시간이 빠르면 빠를 수록 그 다음에 시작할 수 있는 애들도 많아진다로 생각해도 된다는 것이다. 자 그러면 우린 끝나는 시간을 기준으로 정렬을 한다. 이렇게 정렬 된 후 이 끝나는 시간보다 더 큰 start를 가진 제일 먼저 나오는 녀석으로 또 골라 반복하면 되는 것이다. 코드 import sys input = sys.stdin.readline n = int(in.. 2023. 2. 27. 이전 1 2 3 4 5 ··· 8 다음 728x90