카테고리 없음

백준 공부법. 정답은 어디에?

정보도서관 2025. 1. 12. 18:05

책없이 공부하는 방법. 알고리즘. 코딩테스트, 코테, 입문

 

백준을 이용한 백준 문제 공부법이다.

애석하게도 문제의 정답은 구글에 직접 검색해서 찾아야 한다. 대표적인 문제의 답들은 이미 사람들이 많이 올려놨다.

 

코테용 문제 찾는법

 

백준 홈페이지 (https://www.acmicpc.net/workbook/public)

            ↓

(상단메뉴의) 문제 ∨ / > 단계별로 풀어보기

            ↓

 

원하는 카테고리의 문제들을 알아서 풀어보면 된다.

            ↓

(추천단계) 1주씩 밑에 있는걸 하면 3개월 안에 정복할 수 있다.

            ↓

수학 -> 자료구조 -> 재귀 -> DP -> 그래프(DFS/BFS) -> 최단경로 -> 이분탐색 -> 분할정복 -> 그리디 -> 완전탐색, 시뮬레이션, 구현(가능하면 이걸 많이 푸는 게 좋다. 구현력이 늘고 풀 수 있는 문제가 많아진다) -> 문자열 -> 투 포인터, 슬라이딩 윈도우 -> 백트랙킹 


문제 푸는법

 

파란색 글씨 클릭 (ex. "A+B")

            ↓

 

문제 읽고 위에  1000번 / 제출 / 맞힌 사람 / ...  에서 제출 누르고 

            ↓

원하는 언어 설정.

            ↓

 

그리고 소스코드에 코드 짜면 됨.

            ↓

나는 리스트 하나에 숫자 2개가 들어오는 input을 한번에 담아버렸음. 숫자 5개가 들어와도 잘 더함 ㅇㅇ.

 

난 이렇게 풀었음.

data = list(map(int, input().split()))
print(sum(data))

제출 시 이동되는 화면

그러면 이렇게 "에러" 또는 "맞았습니다!!" 등의 반응이 나옴.

 

에러 나오면 내가 뭘 철자가 틀렸거나 로직이 안맞는거니까 옆에 'python 3 / 수정' 에서 수정을 누르고 계속 고쳐가면서 시도하면 됨. 

그래서 안되면 창 하나 더 켜놓고 주피터 노트북 켜놓고 실행 시켜서 내 오류를 찾아가면 됨.

남의 정답 코드도 보고 ㅇㅇ.

 

 

1. 정답 찾는법 : 구글 검색, Chat GPT

존나 어이없지만 정답을 맞춰야 정답을 알 수 있다.

코딩에서는 정답이 여러개라서 하나만 맞추면 다른 사람들이 풀은 여러 답을 이미 쓸데 없지만 알 수 있다.

정답 찾는 법은 구글에 쳐서 남의 글 봐라.

구글에    "백분 1000번 파이썬"    이런식으로 검색.

 

+ 요즘은 Chat GPT 로 검색하면 개꿀 !!!

 EX. " 백준문제 2588번 문제 풀이 ㄱ "
 EX.2. "(코드 붙여넣고) 백준 컴파일 에러가 났어. " 

 

 

 

 

2.. 프로그램 채점이 되려면 인풋 아웃풋 구조를 지켜야한다. 

       ♪ 복사 붙여넣기 하지말고 매번 손코딩 해서 외어지게 하세요 

 

  > 첫번째 : 예제 입력이 옆으로 공백을 두고 주어진다면

예제 입력이 '공백을 사이에 두고' 주어진다면

# 1.통합코드. 인풋이 'N개' 이런식으로 정해져있지 않다면.
data = list(map(int, input().split()))
## 이러면 data에 리스트 형식으로 [1,6,3,4] 이렇게 저장된다.

# 2.하드코딩. 인풋이 "2개" 이런식으로 몇개인지 정해져 있다면 이렇게 해도 됌.
a,b = map(int, input().split())

# 3. 인풋이 1개라면 map 함수를 굳이 쓴다면 ,를 써야한다.
a, = map(int, input(),split())     # 그래야 튜플이 언패킹되어 숫자값이 a로 들어간다. 그렇지 않으면 a는 숫자가 아닌 map 객체가 된다.
   #혹은 간단하게 밑에처럼 쓰는게 보편적이다.
a = int(input())

 

 

 

> 두 번째 : 예제 입력이 위 아래로 주어진다면

예제 입력이 엔터키를 두고 주어진다면

 

a = int(input())
b = int(input())
c = input()   #문자열로 받고싶다면. (아무것도 설정안하면 보통 문자열임)
c = str(input())   #문자열로 받고싶다면.

 

이렇게 순차적으로 input()을 받아야한다.

 

 

 

 

 

 

 

 

<참고문헌>

공부 카테고리 순서 추천

https://dev-dain.tistory.com/155

 

백준 입출력 방법

https://paris-in-the-rain.tistory.com/72