구조 도식화와 의사코드로 코테연습하기

먼치즈·2025년 7월 1일
0

반복/조건/계산 흐름을 한눈에 보는 것이 핵심이다. 쉬운 문제에서 계속 디비전에러로 고생하다가 이대로는 시험장에서 한문제도 못풀고 나올수도 있겠다는 생각에 이글을 작성했다.
앞으로는 전부는 아니여도 도식화와 의사코드를 작성하는 습관을 들일 것이다.

1. 구조 도식화 (Paper Plan) 2분 습관

항목예시
입력 예시A=100, B=500
출력 목표3의 배수 또는 3/6/9 포함된 숫자 개수
반복 흐름A~B 순회하면서 → 조건 만족 여부 체크
조건 분해(1) n % 3 == 0, (2) 자리 중 3/6/9 포함
구현 계획숫자 순회 + 자리수 분리 (%10, /10)

2. 구조화 템플릿으로 사고 정리

[입출력 구조]

  • 입력: 정수 A, B
  • 출력: A~B 중 '마법의 수' 개수

[핵심 조건]

  • n이 3의 배수이거나
  • n의 자릿수 중 3, 6, 9가 포함되어야 함

[반복 구조]

  • for i in A ~ B: isMagicNum(i) → 조건 만족 여부 확인

[예외 및 세부 조건]

  • 예외: 0으로 나누는 경우 피하기
  • 자리 수 나눌 땐 while (n > 0), %10, /10 사용

[예시 흐름]

  • i = 39 → 3의 배수 → OK
  • i = 41 → 각 자리 4, 1 → X
  • i = 63 → 자리 중 3 → OK

3. Paper Plan vs 구조화 템플릿: 언제 뭘 쓸까?

Paper Plan (표 기반 도식화)

특징설명
핵심 요약 중심입력, 출력, 조건, 반복 흐름만 한눈에
빠르게 초안용문제 처음 접했을 때 1~2분 내 작성 가능
종이/화이트보드 낙서용시험지 여백이나 연습장용
개요 파악 최우선흐름을 '머릿속 구조'로 바꾸는 데 특화

언제 사용?
→ 문제를 처음 읽고 이해 흐름을 정리할 때

구조화 템플릿 (반쯤 코드화된 설계서)

특징설명
반코드/반설계 느낌바로 구현 전 흐름 점검용
예외 및 조건 분해 강조자리수 분리, 반복 구조 등 세부까지 포함
디버깅 대비틀릴 수 있는 조건까지 미리 정의
코딩 직전 구조 설계용바로 코딩할 수 있는 설계도로 쓰임

언제 사용?
→ 초안 흐름 정리 후, 본격 구현 직전에 로직을 세분화할 때

결론: 코테 실전 루틴에선 이렇게!

단계도구설명
1단계Paper Plan문제 흐름을 빠르게 파악하고, 머릿속 구조 정리
2단계구조화 템플릿세부 조건, 예외까지 포함한 설계로 구현 준비
3단계(선택) 의사코드 작성구조를 기반으로 주석 or 간이 코드 작성
4단계실제 구현위에서 잡은 구조 따라 코드 작성

즉,

  • 문제 이해 → Paper Plan
  • 코딩 설계 → 구조화 템플릿

둘 다 쓰는 게 베스트지만, 실전 시간이 없다면 Paper Plan만으로도 큰 효과 있어 💪
시간이 여유 있다면 구조화 템플릿까지 쓰면 완성도와 안정성 Up!


4. 플로우차트(Flowchart)는 선택이지만 "강력한 보조 수단"

언제 플로우차트를 쓸까?

상황플로우차트 추천 이유
흐름이 복잡한 조건if-else가 여러 겹 → 시각화로 정리 필요
디버깅 반복 경험 있음어디서 막히는지 시각화로 추적 가능
구현 입문자 / 구조 익숙치 않음조건, 반복, 분기를 '눈에 보이게' 정리하면 훨씬 잘 보임
면접/설명용 발표 자료 준비말로 설명하는 것보다 플로우차트 하나면 이해도 급상승

반면 이런 상황에선 생략 가능:

상황이유
실전 시험 중시간 제한 → 도식화는 간단한 표나 구조화 템플릿으로 대체
단순 조건 문제반복 1~2회 + 조건 간단 → 플로우차트보다 코드가 더 빠름
구조가 머리에 명확히 그려질 때굳이 그릴 필요 없이 바로 구현 가능

플로우차트 기본 도형과 의미

플로우차트 스케치 (그림으로)

  • 시작 → 입력 → 반복 → 조건 → 종료 흐름을 간단히 화살표로
  • 예:
[Start] → [i = A to B]
            ↓
   [isMagicNum(i)]
     ↓      ↓
  true    false
   ↓        ↓
[cnt++   (pass)]
   ↓
[End]

예시 (마법의 숫자 문제 흐름도)


5. 의사코드 작성 예시

의사코드란? 실제 코드를 쓰기 전에 흐름을 '한국어 + 코드 형태'로 정리한 것.
디버깅 전에 구조를 짜보는 연습으로 강력 추천.

입력: A, B

cnt = 0
i를 A부터 B까지 반복:
    i가 3의 배수이면 cnt += 1
    아니라면 i의 각 자릿수 중에 3, 6, 9가 있는지 확인
        → 있으면 cnt += 1

출력: cnt

6. 실전 연습용 템플릿

입력 / 출력 정리

  • 입력:
  • 출력:

핵심 조건

  • 어떤 조건을 만족하면?

반복 구조

  • 어떤 범위를 몇 번 순회?
  • 어떤 자료구조를 써야?

세부 조건

  • 예외는? 모서리 케이스는?

예상 흐름 예시

  • 예시 입력:
  • 단계별 처리 결과:

느낀 점 / 실수 복기

  • 이번 문제에서 놓친 점:
  • 다음엔 어떤 순서로 접근할 것인가?

7. 실전 보완 습관

1. 조건 분해 연습 강화

  • n % 3 == 0과 각 자리 중 3/6/9 존재처럼 명확하게 조건을 분리해 적자.

2. 예외 케이스 체크 습관

  • 예: 입력 범위 끝값, 자리수 1자리, 0 포함 숫자 등도 흐름에 포함해야 함

3. 연산 흐름 단순화 연습

  • 10의 n승 등 복잡한 계산보다 %10, /10 방식 우선

4. 흐름도 + 의사코드 병행

  • 순서도 그렸다고 바로 코딩 ❌
  • 한글 주석 설계문 또는 의사코드를 반드시 작성

5. 시간복잡도 & 자료구조 복습까지 확장

  • 구현 후에는 항상 시간복잡도 계산 습관

8. 도식화 체크포인트

체크 항목설명
조건 누락 주의도식화할 때 조건문과 예외도 꼭 적어야 빠진 로직을 막을 수 있음
과도한 도식화는 독도식화는 연습 땐 3분, 실전에서는 1~2분 안에 끝내는 훈련 필요
예시 없이 도식만예시 입력을 도식에 포함하면 흐름 체크가 쉬워짐
구현 연습 부족도식화만 하고 코드 연습을 안 하면 구현력이 늘지 않음

9. 시간복잡도 분석

  • 전체 루프: A부터 B까지 → O(N)
  • 자리수 확인: 정수 길이(최대 6자리) → O(1)
  • 총 시간복잡도: O(N)

도식화 습관의 진화 단계

단계설명
1단계입출력 & 조건 흐름 도식화
2단계예외 케이스, 디버깅 포인트 추가
3단계의사코드로 흐름 점검
4단계구현 후 시간복잡도, 자료구조 복습

실수개선 습관
구현 중 흐름 꼬임도식화 + 의사코드 후 구현
profile
먼치즈의 개발 벨로그입니다:)

0개의 댓글