## 문제

8x8크기 체스판에서 (0,0)이 흰색이다.

하얀 칸 위에 말이 몇개 있는지 출력하기


## code

import sys
input = sys.stdin.readlines()
l1 = list(map(lambda x:x.rstrip().replace('\x1a',''),input))
l2 = list(map(list,l1))
count = 0
for i in range(8):
    for j in range(8):
        if (i+j)%2 == 0:
            if l2[i][j] == 'F':
                count += 1
print(count)

i+j가 짝수인곳이 하얀칸이다

전체 코드의 시간 복잡도는 둘 다 선형적입니다. 입력의 줄 수에 비례하는 작업이므로 O(N)이고, 각 줄의 길이에도 비례하는 작업이 있으므로 O(M)입니다. 따라서 전체 코드의 시간 복잡도는 O(N*M)이 됩니다. 이는 입력 데이터의 크기에 비례하여 실행 시간이 증가하는 선형적인 시간 복잡도입니다.

두 코드 모두 선형적인 시간 복잡도를 갖고 있으므로, 입력의 크기가 작을 때에는 성능상의 차이가 크게 나타나지 않을 것입니다. 하지만 입력의 크기가 크거나 입력의 구조가 복잡할 때에는 약간의 성능 차이가 있을 수 있습니다.
첫 번째 코드는 입력을 줄 단위로 읽어서 처리하는 방식을 사용합니다. 이는 입력이 많거나 입력의 구조가 복잡할 때 유용합니다. 또한 한 번에 처리할 양을 줄이므로 메모리를 더 효율적으로 사용할 수 있습니다.
두 번째 코드(아래 코드)는 표준 입력에서 데이터를 한 번에 모두 읽어서 처리하는 방식을 사용합니다. 이는 입력이 많거나 입력의 구조가 단순할 때 유용합니다. 또한 한 번에 데이터를 읽어오므로 파일 I/O 작업이 한 번만 수행되어 속도가 빠를 수 있습니다.


print(open(0).read()[::2].count("F"))

이건 2칸씩 건너면서 'F'를 찾은것 같은데

open(0).read()

Q : open(0).read() 파일을 입력하고 문자열을 받아오면 결과는 str인가?

A : 파이썬에서 open() 함수를 사용하여 파일을 열 때 반환되는 객체는 파일 객체입니다. 따라서 open(0).read()를 호출하면 파일 객체에서 read() 메서드를 호출하여 파일의 내용을 읽어옵니다.

그러나 open() 함수에 전달된 인자가 잘못되었습니다. 보통 open() 함수의 첫 번째 인자는 파일 경로이어야 합니다. 0은 파일 경로가 아니기 때문에 올바르게 파일을 열 수 없습니다.

따라서 코드가 잘못된 인자로 인해 실행되지 않는다면 결과를 예측할 수 없습니다. 이 코드가 올바른 인자를 받아 실행된다면, 반환된 결과는 파일의 내용이 될 것입니다. 파일의 내용을 문자열로 반환하는 것이기 때문에 결과는 문자열 형태일 것입니다.


Q : BOJ사이트에서 코딩테스트 문제풀때

A : BOJ(백준 온라인 저지) 사이트에서는 프로그램의 입력을 파일에서 읽는 방식으로 테스트 케이스를 제공하는 경우가 있습니다. 이 때 open(0).read()는 표준 입력에서 데이터를 읽어오는 방법 중 하나입니다.

open(0)은 표준 입력 파일을 열기 위한 관례적인 방법입니다. 이는 파일 디스크립터 0을 의미하며, 보통 표준 입력을 나타냅니다. 따라서 open(0).read()를 사용하면 표준 입력에서 데이터를 읽어올 수 있습니다.

결과적으로, open(0).read()를 사용하여 표준 입력에서 데이터를 읽어온다면, 반환되는 값은 입력 데이터에 해당하는 문자열일 것입니다. 이 문자열은 테스트 케이스에 따라 달라질 수 있으며, 보통 테스트 케이스마다 줄바꿈 문자(\n)로 구분되어 있습니다.


Q : 표준 입력이란

A : 표준 입력(Standard Input)은 프로그램이 사용자로부터 데이터를 받는 데 사용되는 표준 입출력 장치입니다. 일반적으로 이는 사용자의 키보드 입력을 의미합니다.

대부분의 컴퓨터 프로그램은 입력 데이터를 읽기 위해 표준 입력을 사용합니다. 예를 들어, 사용자로부터 데이터를 입력 받는 프로그램이나 파일 등을 읽는 프로그램에서 사용됩니다.

표준 입력은 프로그램을 실행할 때 운영체제로부터 제공되는 기본적인 입력 장치이며, 일반적으로 터미널에서 사용됩니다.