[BOJ 1652번] 누울 자리를 찾아라(Python)

2024. 2. 22. 23:30· 코딩 테스트 준비/5정한
목차
  1. 📝 문제
  2. ✅ 풀이

📝 문제

💡 일 년 동안 세계일주를 하던 영식이는 여행을 하다 너무 피곤해서
근처에 있는 코레스코 콘도에서 하룻밤 잠을 자기로 하고 방을 잡았다.
코레스코 콘도에 있는 방은 NxN의 정사각형모양으로 생겼다.
방 안에는 옮길 수 없는 짐들이 이것저것 많이 있어서 영식이의 누울 자리를 차지하고 있었다.
영식이는 이 열악한 환경에서 누울 수 있는 자리를 찾아야 한다.

영식이가 누울 수 있는 자리에는 조건이 있다.
똑바로 연속해서 2칸 이상의 빈 칸이 존재하면 그 곳에 몸을 양 옆으로 쭉 뻗으면서 누울 수 있다.
가로로 누울 수도 있고 세로로 누울 수도 있다.
누울 때는 무조건 몸을 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다.
(중간에 어정쩡하게 눕는 경우가 없다.)

방의 크기 N과 방의 구조가 주어졌을 때,
가로로 누울 수 있는 자리와 세로로 누울 수 있는 자리의 수를 구하는 프로그램을 작성하시오.
⚙️ 입력 : 첫째 줄에 방의 크기 N이 주어진다.
N은 1이상 100이하의 정수이다.
그 다음 N줄에 걸쳐 N개의 문자가 들어오는데
'.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다.
⚙️ 출력 : 첫째 줄에 가로로 누울 수 있는 자리와 세로로 누울 수 있는 자리의 개수를 출력한다.

 

문제링크

 

1652번: 누울 자리를 찾아라

첫째 줄에 방의 크기 N이 주어진다. N은 1이상 100이하의 정수이다. 그 다음 N줄에 걸쳐 N개의 문자가 들어오는데 '.'은 아무것도 없는 곳을 의미하고, 'X'는 짐이 있는 곳을 의미한다.

www.acmicpc.net


✅ 풀이

n = int(input())
room = []
for i in range(n):
    room.append(list(input()))

row = []
for item in room:
    temp = ''
    for items in item:
        if items == '.':
            temp += items
        else:
            row.append(temp)
            temp = ''
    row.append(temp)

rcnt = len([k for k in row if len(k) >= 2])

croom = [list(k) for k in zip(*room)]
col = []
for item in croom:
    temp = ''
    for items in item:
        if items == '.':
            temp += items
        else:
            col.append(temp)
            temp = ''
    col.append(temp)

ccnt = len([k for k in col if len(k) >= 2])

print(rcnt, ccnt)
💡 입력받은 대로 만들어진 방 구조 리스트로 가로 공간을,
zip을 이용해 방 구조를 전치시킨 리스트로 세로 공간을 구했다.

연속되는 .을 한 묶음으로 묶어서 별도 리스트에 저장해준 뒤,
. 묶음의 길이가 2 이상인 것들을 카운팅해주었다.
저작자표시 비영리 변경금지
  1. 📝 문제
  2. ✅ 풀이
'코딩 테스트 준비/5정한' 카테고리의 다른 글
  • [BOJ 1769번] 3의 배수(Python)
  • [BOJ 1676번] 팩토리얼 0의 개수(Python)
  • [BOJ 1543번] 문서 검색(Python)
  • [BOJ 1531번] 투명(Python)
zzzini
zzzini
종착지는 어디인지 모르지만
zzzini
나의 표류일지
zzzini
전체
오늘
어제
  • 분류 전체보기 (307)
    • ASAC 빅데이터 분석가 4기 (44)
      • Python기초 (6)
      • SQL (3)
      • Matplotlib & Seaborn (2)
      • Data Handling (6)
      • Web Crawling (3)
      • Machine Learning (9)
      • Deep Learning (10)
      • 데이터 분석 (1)
      • 기타 (2)
      • 수학 (2)
    • 코딩 테스트 준비 (168)
      • 5정한 (132)
      • 카카오 (14)
      • PCCP & PCCE (3)
      • 프로그래머스 (19)
    • 자격증 (35)
      • AWS CLF-C02 (18)
      • AWS SAA-C03 (1)
      • Tableau Desktop Specialist (5)
      • Tableau Certified Data Anal.. (11)
    • 독서 (17)
    • Tech (23)
      • Tableau (10)
      • AI (4)
      • Flask (1)
      • Node.js (2)
      • Cloud Computing (2)
      • Git & GitHub (1)
      • Notion API (1)
      • Linux (2)
    • Projects (2)
    • 알고리즘 공부 (6)
    • 🎵 (11)

블로그 메뉴

  • 글 쓰기
  • 홈
  • 방명록

공지사항

hELLO · Designed By 정상우.v4.2.1
zzzini
[BOJ 1652번] 누울 자리를 찾아라(Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.