Insights/For KR 5

백준 11718번: 입력이 없는데 EOFError가 발생하지 않는다고?

sys.stdin.readline()은 빈 문자열을 반환한다!import syswhile True: try: userInput = sys.stdin.readline().strip() print(userInput) except: break EOFError(End of File)는 파일의 끝, 즉 입력의 끝을 의미한다. input()은 파일의 끝에서 EOFError를 발생시키지만, sys.stdin.readline()은 빈 문자열을 반환하므로 EOFError를 발생시키지 않는다. 따라서 출력 초과로 인한 오답 처리가 되는 것이다.while True: try: print(input()) except: break 물론 이렇게 간..

Insights/For KR 2024.11.23

백준 2675번: 디버거로 분석하는 이스케이프 문자 처리

이스케이프 문자 이스케이프 문자는 문자열 내에서 특별한 역할을 한다. 그리고 일반적으로 백슬래시(\)가 이스케이프 문자로 쓰인다. 이스케이프 문자는 바로 뒤에 오는 문자와 조합하여 다양한 특수 기능을 하기 때문에 취급에 주의해야 한다. 이스케이프 시퀀스\n줄 바꿈\t탭\\백슬래시\'작은따옴표\"큰따옴표 디버깅을 통해 이스케이프 문자 처리 확인하기 \uXXXX는 유니코드 이스케이프 시퀀스다. 따라서 \u03B1은 그리스 문자 α를 나타낸다. 문자열로 변수 test1에 할당한 경우 'α'가 할당되었으며, 원시 문자열로 변수 test2에 할당한 경우 '\\u03B1'가 할당된 것을 확인해 볼 수 있다. 참고로 원시 문자열이라고 함은 문자열 앞에 r을 붙여 표시한 것을 말한다.  디버깅을 해보며 알게 된 사실은..

Insights/For KR 2024.11.16

백준 10809번: find 메서드는 인덱스만 반환하는가?

문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.baekjoon 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 ..

Insights/For KR 2024.11.09

백준 3052번: "{}"은 집합? 딕셔너리?

빈 리스트 생성의 경우 리스트에 어떠한 값을 추가할 예정이라고 하더라도, 프로그램이 정상적으로 작동하기 위해서는 해당 리스트를 미리 생성해 초기화해 놓아야 한다. 파이썬에서 빈 리스트는 기본적으로 "[]"을 입력해 생성한다. 아래 두 코드들은 실제로 내가 백준 문제를 풀며 리스트를 초기화한 사례이다.# https://www.acmicpc.net/problem/10871import sysN, X = map(int, sys.stdin.readline().split())A = list(map(int, sys.stdin.readline().split()))less_than = []for i in A: if i # https://www.acmicpc.net/problem/2562import sysinputs..

Insights/For KR 2024.11.02

VS Code로 GitHub에 커밋하기: user.name, user.email

커밋하기 VS Code를 켠 뒤, Source Control 아이콘을 직접 누르거나 "Ctrl+Shift+G" 단축키를 통해 소스 컨트롤로 이동한다. 적절한 커밋 메시지를 입력한 뒤 커밋 버튼을 눌러주면 된다. VS Code를 통해 처음으로 커밋하는 경우, 분명 깃허브 계정으로 로그인하였음에도 아래와 같은 팝업창이 뜰 것이다. 이러한 팝업창이 뜨는 이유는 깃에 사용자 이름과 사용자 이메일이 등록되어 있지 않기 때문이다. 일단 사용자 이름과 사용자 이메일을 등록하기 위해 VS Code 터미널을 연다. VS Code의 터미널은 "Ctrl+`" 단축키를 통해서도 접근이 가능하다. 터미널을 열었다면 아래에 제시된 명령어를 입력해서 사용자 이름과 사용자 이메일을 설정하면 된다.git config --global ..

Insights/For KR 2024.10.26