프로그래밍 오리엔테이션
1 / 11

프로그래밍의 시작

오리엔테이션, 실행 원리 및 알고리즘

논리적 사고력과 문제 해결력을 키우는 첫 걸음

왜 프로그래밍을 배울까?

문법 암기가 목적이 아닙니다.

  • 복잡한 문제를 논리적으로 쪼개서 단계적으로 해결하기
  • 생각의 흐름을 컴퓨터가 알아듣게 명확히 번역하기
  • 온라인 저지 시스템으로 자신의 설계를 스스로 검증하기

컴파일러 vs 인터프리터

프로그래밍 언어의 기계어 번역 방식 구분

  • 컴파일러: 전체 코드를 한 번에 기계어로 번역 (C, C++, Java) $\rightarrow$ 실행 속도가 매우 빠름
  • 인터프리터: 한 줄씩 순차적으로 번역하며 실행 (Python, javascript) $\rightarrow$ 수정 및 디버깅이 신속함

쉬운 비유로 이해하기

번역 책 만들기 vs 실시간 동시통역

  • 컴파일러 (번역 책 인쇄): 전체 소설을 미리 한국어로 번역해 인쇄해 두는 것. 막힘없이 매우 빠르게 읽을 수 있지만 오타가 나면 전체를 다시 인쇄해야 함.
  • 인터프리터 (동시통역): 강연자의 말을 즉시 한 문장씩 동시통역하는 것. 미리 책을 만들 필요는 없지만 들을 때마다 동시통역 단계를 거쳐야 하므로 상대적으로 느림.

알고리즘의 개념과 5대 조건

문제를 해결하기 위한 명확한 순서와 절차

  • 입력: 0개 이상의 입력값이 있을 것
  • 출력: 최소 1개 이상의 명확한 결과물을 낼 것
  • 명확성: 모든 명령어의 해석이 뚜렷할 것
  • 유한성: 한정된 단계를 거쳐 반드시 종료될 것
  • 수행 가능성: 모든 절차는 물리적으로 실행 가능할 것

알고리즘 표현 도구

알고리즘을 효율적으로 작성하고 소통하기 위한 세 가지 기법

  • 자연어: 일상적인 언어로 기술 $\rightarrow$ 직관적이지만 오해의 여지가 있음
  • 의사코드: 가짜 코드로 논리적 흐름에 집중하여 구조화
  • 순서도: 약속된 도형 기호를 결합해 논리적 흐름을 도식화

순서도 표준 기호

기호 모양역할상세 의미
타원시작 / 종료알고리즘의 시작과 끝을 정의
평행사변형입력 / 출력데이터 입력받기 및 외부 출력
직사각형처리값 대입, 연산, 수식 계산 등의 수행
마름모판단 / 조건예/아니오에 따른 실행 경로 분기

온라인 저지(OJ) 활용 흐름

  • 문제 읽기: 입력과 출력 명세를 정확히 파악
  • 알고리즘 설계: 코드를 쓰기 전에 예제를 보고 머릿속으로 해결 과정 도출
  • 구현 및 제출: 파이썬 문법에 맞게 코딩하고 제출 언어 Python3 확인
  • 디버깅: 오답이 나오면 에러 원인을 추적하여 소스코드 최적화

대표적인 채점 결과

판정 결과의미
맞았습니다 (AC)모든 테스트 데이터를 정상적으로 통과함
틀렸습니다 (WA)출력이 예상 값과 다름 — 공백, 줄바꿈, 엣지 케이스 확인
런타임 에러 (RE)실행 중에 예기치 못한 에러가 나거나 비정상 종료됨
컴파일 에러 (CE)파이썬 문법 오류로 해석할 수 없음 — 오타/들여쓰기 확인
시간 초과 (TLE)제한 시간 안에 프로그램이 끝나지 않음 — 무한 루프 검토

자주 저지르는 입출력 실수

# 잘못된 사례 — 불필요한 안내 문자열 포함
n = int(input("값을 입력하세요: "))

# 올바른 사례 — 표준 입력만 받기
n = int(input())

안내 문구가 출력창에 함께 흘러나오면 채점기는 오답으로 처리합니다. 인자 값을 비워두세요.

AI 힌트 기능 활용

오답이 나왔을 때 스스로 해결이 어렵다면 도움을 받을 수 있습니다.

  • 힌트 요청 방법: 상세 결과 페이지(WA, TLE, RE, CE 클릭)의 하단에서 "AI 힌트 요청"을 클릭합니다.
  • 소크라테스식 질문: 직접 코드를 수정해 주지 않고, 스스로 해결할 수 있도록 유도하는 질문을 던집니다.
  • 요청 제한: 답안 제출 건당 최대 2회까지 생성 가능하며, 코드를 새로 제출하면 요청 기회가 리셋됩니다.
ESC — 수업으로 돌아가기  ·  F — 전체화면