Python
-
[Python] BOJ 1012: 유기농 배추언어/Python 2024. 11. 18. 09:57
https://www.acmicpc.net/problem/1012요구사항시간 제한 1초 M x N = 250 메모리 제한 512 MB 리스트 남발해도 끄떡없게 주심최소의 배추흰지렁이 마리 수를 출력. 설계BFS 를 사용해서 해결할 수 있다. 배추가 심어져 있는 땅이 얼마나 연결되어 있느냐? 를 생각하면 된다. 백준의 1926번을 풀어봤다면 쉽게 풀었을 듯 하다.문제를 볼 때, 지렁이 배추를 생각하면 되려 헷갈려 문제의 본질을 찾고, 내가 풀었던 문제들 중 가장 비슷한 문제를 떠올리면 쉽게 풀리는 거 같다. https://studyiwthme.tistory.com/185 배추 밭을 초기화하고 배추가 심어져 있는 땅을 구하고전체 필요한 지렁이를 초기화방문 여부 처리 배열 초기화 BFS 탐색 함수를 생성하자..
-
[Python] BOJ 7576: 토마토(feat. 3일 걸렸다.)언어/Python 2024. 11. 7. 08:06
https://www.acmicpc.net/problem/7576요구사항시간제한 1초O(n**2) 10,000,000 천만번 정도 연산이 최대니깐 괜찮다. 메모리 제한 256MB 넉넉할 거 같다. 며칠이 지나야 토마토들이 모두 익는 지, 최소 일수를 구해라설계BFS 방식으로 풀자. 익은 토마토들을 따로 빼준다. 방금 든 생각인데 여기서 익은 토마토가 없다면 print(-1) exit() 하는 것도 좋을 거 같다. 그럴 필요없겠다. while queue에서 걸린다, 그래도 뭐 빨리 발견하니깐 하는 게 좋은건가? 모르겠다. 익은 토마토를 BFS 방식으로 탐색해준다. 2 중 for문을 사용해서 최대값을 구한다. 구현(사실상 최종 코드는 블로그 맨 아래 참고)from collections import deque..
-
[Python] BOJ 2178 미로탐색코딩테스트/백준 2024. 11. 1. 11:03
요구사항시간 제한 1초2이상 n, m 이 100 이하 정수로 이루어져 있으니 O(n**2) 도 무리 없어 보인다.메모리 제한 192MB 아무리 해도 괜찮아 보인다.(1, 1) 에서 출발하여 (N, M) 즉, 오른쪽 하단까지 가는 최소거리를 구하라. 설게 1n, m 을 입력받는다.2차원 배열을 초기화 한다.방문여부를 불리언으로 초기화한다.최소값을 구할 miniu을 초기화한다.bfs를 구현한다.모든 경우의 수를 다 넣어보고 가장 적은 값을 출력한다.구현 1import sysfrom collections import dequen, m = map(int, input().split())# 2차원 배열 초기화mirro = [list(map(int, input().split())) for _ in range(n)]#..
-
[Python] BOJ 1926 : 그림코딩테스트/백준 2024. 10. 29. 07:58
요구사항, 설계2차원 배열의 최대 크기가 2500이다. 시간 메모리 걱정 없다.5분 생각하고 안 떠올라서 답지 봤다.구현from collections import deque# 가로 세로 크기n, m = map(int, input().split())# 도화지canvas = [list(map(int, input().split())) for _ in range(n)]# 방문 여부visited = [[False] * m for _ in range(n)]# 그림의 개수num_of_pictures = 0# 가장 넓은 그림max_size = 0def bfs(x, y): queue = deque([(x, y)]) visited[x][y] = True dx = [-1, 1, 0, 0] dy = [0..
-
[Python] BOJ 10799 : 쇠막대기코딩테스트/백준 2024. 10. 24. 09:27
https://www.acmicpc.net/problem/10799생각해보기어떻게 래이저와 쇠막대기를 구별할까?')' 이 들어올 때, 그 전이 '(' 라면 레이저이다.')' 이 들어올 때, 그전이 ')' 라면 막대기의 끝이다. 요구사항시간제한 1초 : 여기서 N은 메모리제한 256MB 항상 넉넉한 편인듯쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. -> 괄호로 표기할 떄 병렬로 하지 못하니깐 당연하다.쇠막대기와 레이저의 배치를 나타내는 괄호 표현이 주어질 떄, 잘려진 쇠막대기 조각의 총 개수를 구하는 프로그램설계def count_sticks():사용자로부터 괄호를 입력 받는다.빈 리스트를 초기화 한다. ( 스택 초기화 )결과를 저장할 변수를 초기화 한다.for i in range(len(bars..
-
[Python] BOJ 3986 : 좋은 단어코딩테스트/백준 2024. 10. 23. 08:08
https://studyiwthme.tistory.com/176 https://www.acmicpc.net/problem/3986 생각해보기좋은 단어란? 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝을 지을 수 있다면..무슨 말이야아치형 곡선? 포물선?단어의 수 -> 사용자로부터 받은 입력의 개수 즉, 라인의 개수 gpt한테 요구사항 분석 -> 서로 인접한 같은 문자가 있으면, 그 두문자를 제거. 위 과정을 반복하여 모든 문자가 제거될 수 있으면 좋은 단어요구사항시간 제한 1초 O(n*m) 정도이고 N은 100이하 M은 100,000 충분충분.. 메모리 제한 256MB 넉넉하시다. 서로 인접한 같은 문자가 있으면 그 두 문자를 제거한 후 모든 문자가 제거된 문..
-
[Python] BOJ 4949 : 균형잡힌 세상코딩테스트/백준 2024. 10. 22. 08:31
https://www.acmicpc.net/problem/4949생각 정리스택을 사용하고, ')' or ']' 가 들어올 때 스택의 맨 위의 문자가 각각의 짝과 맞는지 보자.그런 다음 만약 stack이 비어있다면..헷갈렸던 부분문자열의 마지막에 온점이 찍힌다. 문자열의 종료 조건인데 어떻게 가능하지쉽게 말해 문자열이 있다면 온점을 신경 쓰지 않아도 된다. 그냥 없다고 생각하자.다만, 문자 '.' 만 입력으로 들어왔을 때, 반복문을 종료하면 된다. 요구사항시간제한 : 1초 문자열의 길이가 100보다 작거나 같다. 메모리 제한 128MB 넉넉문자열이 주어졌을 때 균형 잡힌 문자열인지 아닌지 판단문자열의 종료 조건은 마지막에 온점 하나가 들어온다. 설계while True일 때 동안 사용자로 부터 입력을 받는다..
-
[Python] BOJ 10845 큐코딩테스트/백준 2024. 10. 21. 07:52
https://www.acmicpc.net/problem/10845생각해보기더보기무조건 이상하게 구현 시도하려고 하지 말고, 파이썬에서 제공하는 모듈 deque 를 사용해서 리스트에 값을 넣고 빼자. 요구사항시간제한 0.5초 python 에서 제공하는 모듈을 사용하자. O(n) 정도일 때 만..메모리제한 256MB 하나의 리스트를 담기엔 충분하다.명령어가 입력으로 주어 졌을 때, 명령어 규칙에 따라 결과값을 출력하자.설계모듈 deque 를 불러온다. 나도 예전엔 "이런 거까지 외워야 되나 싶었다" 그러면 이렇게 해보쇼 !! 문제를 모듈을 사용하지 않고 문제를 풀어보고 !! 모듈을 한번 써보면 너무 편하고 이렇게 하면 이렇게 간단한 걸... 하고 까먹기 싫어서 외워졌다. 입력으로 받은 N번 동안 for문을..