본문 바로가기
코딩테스트 - 백준, 프로그래머스/[단계별, 코딩 기초 트레이닝]

[반복문, Day 6] A+B-3 / 수 조작하기 1

by musukie 2026. 1. 18.

📝 입출력 · 반복문 · 문자열 처리 정리

1. 여러 테스트 케이스 A + B 출력하기

  • 문제각 줄마다 두 정수 A, B를 입력받아 A + B 출력
  • 테스트 케이스 개수 T가 주어지고,
  • 질문 포인트 ①→ 반복문 조건 i < T에 사용되므로
  • 반드시 반복 전에 값이 결정되어 있어야 함
  • 왜 T를 먼저 입력받아야 하는가?
  • 질문 포인트 ②→ 문제에서 각 결과를 한 줄씩 출력 요구
  • printf("%d"); // ❌ 줄바꿈 없음 printf("%d\\n"); // ⭕ 한 줄 출력
  • 왜 출력에 \\n이 필요한가?
  • 핵심 흐름
  • 입력 → 반복 → 계산 → 줄바꿈 출력
// C
for(int i = 0; i < T; i++){
    scanf("%d %d", &A, &B);
    printf("%d\\n", A + B);
}
// C++
cout << A + B << '\\n';
// C#
Console.WriteLine(A + B)

2. 문자열 control에 따라 n 값 변경하기

  • 문제문자에 따라 n 값 변경
  • 문자열 control을 앞에서부터 순회하며

문자 동작

w n += 1
s n -= 1
d n += 10
a n -= 10

  • 질문 포인트 (핵심 실수)❌ 틀린 이유
  • → c는 인덱스가 아니라 문자 값 자체
  • for(char c : control){ if(control[c] == 'w') ...
  • 올바른 사용→ range-based for에서는 값을 바로 비교
  • for(char c : control){ if(c == 'w') ... }

  • 인덱스 방식 vs 문자 방식
// 인덱스 방식
for(int i = 0; i < control.size(); i++){
    if(control[i] == 'w') ...
}
// 문자 직접 방식
for(char c : control){
    if(c == 'w') ...
}

두 방식은 섞어 쓰면 안 됨


✔ 전체 핵심 정리

  • 반복문 조건에 쓰이는 값은 반드시 사전 입력
  • 출력 형식(\\n)은 정답 조건의 일부
  • range-based for문의 변수는 인덱스가 아닌 값
  • 문자열 순회 시 접근 방식 혼용 금지

🎯 한 줄 요약

기초 문제의 핵심은 알고리즘이 아니라입력 순서 · 반복 조건 · 출력 형식을 정확히 지키는 것