• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

readline을 어떻게 사용해야 할까요?

23.11.19 21:47 작성 조회수 124

0

안녕하세요 선생님!

readline이 입력이 빠르다고 해서 가능하면 readline을 이용해서 입력을 받고 싶습니다.

그런데 readline을 이용해서 보드판 입력을 받으면 원하지 않는보드판이 만들어지는데 그 이유를 모르겠어서 질문드립니다!

#1

import sys
sys.stdin=open("input.txt","rt")

if __name__=="__main__":
    board = [ list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(10) ]

    for x in board:
        print(x)

위처럼 보드를 만들면 첫번째 행은 무시되면서 마지막 행은 빈 리스트가 생성됩니다.

#2

import sys
sys.stdin=open("input.txt","rt")
input=sys.stdin.readline().rstrip

if __name__=="__main__":
    board = [ list(map(int, input().split())) for _ in range(10) ]

    for x in board:
        print(x)

위 처럼 보드 입력을 받으면 첫번째 행을 10개 복사한 보드가 만들어지니다.

 

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

답변을 작성해보세요.

0

안녕하세요^^

rstrip 를 제거해주니 제대로 입력되네요. 이유는 저도 잘 모르겠습니다. 2차원 배열은 이렇게 해야 하나 봅니다.

import sys
sys.stdin=open("in1.txt","rt")
input=sys.stdin.readline

if __name__=="__main__":
    board = [ list(map(int, input().split())) for _ in range(10) ]

    for x in board:
        print(x)
        
como411s님의 프로필

como411s

질문자

2023.11.22

일단은 이차원배열은 strip하지않고,

string을 다루는 입력만 strip을 해주면서 풀어봐야겠네요!

 

감사합니다!