본문 바로가기
728x90

알고리즘141

[BOJ/Python] 14503. 로봇 청소기 📌 문제 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 📌 문제 접근 방법 바보같이 문제 파악을 잘 못해서 어어어어엄청 헤맸다😣 문제를 찬찬히 살펴보자면, 1) 현재 위치를 청소한다. 2) 현재 위치에서 왼쪽 방향부터 차례로 인접한 칸을 탐색한다. 2-1) 청소할 공간이 있다면, 해당 방향(청소할 공간의 방향)으로 회전하여 전진한다. 2-2) 네 방향 모두 청소할 수 없다면, 바라보는 방향(마지막으로 탐색한 방향)을 유지한 채로 후진한다. .. 2021. 10. 13.
[SWEA/Python] 2105. [모의 SW 역량테스트] 디저트 카페 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 목표하는 지점까지 도착해야 끝나므로 dfs! 어차피 디저트가 중복될 수 없으므로 방문체크는 안해줬다. 사각형을 그리는 경우, 현재 위치를 기준으로 위로 올라가는 사각형과 아래로 내려가는 사각형이 있을텐데 결국 중복되므로 한가지 방향만 생각해주면 된다. (사각형 하나를 만들때 방향 전환은 딱 3번만 해주면 된다.) 현재 위치에서 이동할 수 있는 경우의 수는 직진과 꺾어서 가는 경우 2가지 위의 2가지를 완전 탐색하고 최대 값을 출력한다. 📌 코드 import sys.. 2021. 10. 12.
[BOJ/Python] 5556. 타일 📌 문제 https://www.acmicpc.net/problem/5556 5556번: 타일 상근이는 타일로 작품을 만드는 예술가이다. 크기가 N × N인 작품을 만들기 위해서 상근이는 1 × 1 타일을 사용한다. 색상은 빨강, 파랑, 노랑 중 하나이다. 작품은 가장 바깥쪽에 빨간색을 붙이 www.acmicpc.net 📌 문제 접근 방법 처음엔 타일의 인덱스를 받아서 타일이 바깥쪽에서 얼마나 안으로 들어와있는지를 num을 통해서 구했다. → 시간초과 시간초과가 나고 N의 범위를 보니, 타일의 인덱스를 받자마자 거기서 계산해서 바로 나와야 하는 것 같았다. 우선, 타일의 인덱스를 타일의 중심을 기준으로 왼쪽 위부분만 고려하도록 인덱스를 변형해줬다. 왼쪽 위 부분만 본다면, 한 행에 i개의 색깔을 쓸 수 있.. 2021. 10. 9.
[SWEA/Python] 2806. N-Queen 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 행, 열, 대각선 이동을 전부 해야하나? 고민을 하다가 결국 구글링을 하고 set으로 만들어주면 된다는 것을 알게 되었다. set을 사용할 때는 add, remove를 통해 요소를 넣고 뺄 수 있다. 처음엔 행도 set을 통해서 공격여부를 판단했었는데, 시간초과가 나서 행은 set을 없애주고 행 단위로 함수를 실행시켜주는 걸로 바꾸었다. 📌 코드 import sys sys.stdin = open('input.txt') def find_next(i): global .. 2021. 10. 8.
728x90