읽기 전에 알아두면 좋아요
아래 개념이 익숙하면 본문을 바로 읽으세요. 낯선 개념만 링크에서 복습하면 됩니다.
- 문자열 알고리즘 기초: 순회·문자 판별·대소문자 변환·숫자 추출문자열의 각 문자를 순서대로 읽고 위치를 확인하는 방법을 복습합니다. 일괄 대소문자 변환의 적용 범위를 확인합니다.
- 기초 구현 패턴: 조건·정수 계산·순회·상태 갱신변수에 값을 담고 조건에 따라 합·개수·최솟값을 갱신하는 기초부터 확인합니다. 순회 중 필요한 상태를 정하고 갱신하는 기본 패턴입니다.
개념과 예제는 실행하지 않아도 읽을 수 있습니다. 내 컴퓨터·터미널에서 직접 실행하는 과정은 선택 실습입니다.
과정 위치와 선택 복습 안내
과정 위치: 문자열 기초 · 문제
과정 위치는 이 글이 속한 묶음입니다. 이 단계의 모든 개념을 먼저 읽을 필요는 없습니다. 위에 연결한 개념 중 낯선 내용만 복습하세요. 문제의 조건·상태·갱신 순서는 익숙한 언어로 설명하면 됩니다.
JavaScript로 문법·실행 복습하기 (선택)
개념 글의 코드는 JavaScript 예시입니다. 문제 화면에서는 JavaScript·Python·Java·C++·C# 중 익숙한 언어의 함수를 작성하세요. 본문의 Node.js 입출력 예시는 로컬 실행을 위한 별도 안내입니다.
대문자로 통일하기 문제에서 영문 문자열은 어떤 형태로 반환하나요?
주어진 영문 문자열을 대문자로 통일해 반환하는 문제입니다. 문자열·대소문자의 기본을 준비하고, 아래 입력·반환 계약을 확인해 직접 풀어보세요.
적용 조건·범위: 이번 대조는 원자료의 문제 조건과 예제 확인입니다. 이 글의 전체 코드를 새로 실행하거나 공식 채점에 제출한 결과를 뜻하지 않습니다. 아래 예제·자가 확인 항목은 직접 실행해 기대 출력과 비교하는 기준입니다.
공식 문서 참고: 관련 개념: MDN toUpperCase의 새 문자열 반환
문제
대문자와 소문자가 함께 있는 문자열 하나를 입력받아 모든 영문자를 대문자로 통일해 출력합니다. 문자열 길이는 100 이하이며, 예제 입력 ItisTimeToStudy의 출력은 ITISTIMETOSTUDY입니다.
직접 풀어보기
먼저 선택한 언어의 입력·반환 계약에 맞춰 작성해 보세요. 힌트 받기와 정답과 비교하기는 코드를 실행하지 않는 AI 분석입니다. 해답·해설은 아래에서 필요할 때 펼칠 수 있습니다.
AI 힌트
코드를 실행한 채점 결과가 아닌 AI의 코드 분석입니다.
해답·해설 보기
function solution(text) {
return text.toUpperCase();
}
solution(text)에 문자열을 전달하며 결과 문자열을 반환합니다. 입력은 문제의 유효한 범위를 만족합니다. 표준 입력·출력 없이 결과를 반환하세요.
def solution(text):
return text.upper();
solution(text)에 문자열을 전달하며 결과 문자열을 반환합니다. 입력은 문제의 유효한 범위를 만족합니다. 표준 입력·출력 없이 결과를 반환하세요.
import java.util.*;
class Solution {
public String solution(String text) {
return text.toUpperCase(Locale.ROOT);
}
}
Solution.solution(String text)에 문자열을 전달하며 결과 문자열을 반환합니다. 입력은 문제의 유효한 범위를 만족합니다. 표준 입력·출력 없이 결과를 반환하세요.
#include <algorithm>
#include <array>
#include <functional>
#include <list>
#include <limits>
#include <memory>
#include <numeric>
#include <queue>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
using namespace std;
string solution(const string & text) {
string result = text;
for (char & ch : result) if (ch >= 'a' && ch <= 'z') ch = static_cast < char >(ch - 32);
return result;
}
solution(text)에 문자열을 전달하며 결과 문자열을 반환합니다. 입력은 문제의 유효한 범위를 만족합니다. 표준 입력·출력 없이 결과를 반환하세요.
using System;
using System.Collections.Generic;
using System.Text;
public class Solution {
public string Solve(string text) {
return text.ToUpperInvariant();
}
}
Solution.Solve(string text)에 문자열을 전달하며 결과 문자열을 반환합니다. 입력은 문제의 유효한 범위를 만족합니다. 표준 입력·출력 없이 결과를 반환하세요.
원자료와 확인 범위
2026-10-12에 제공된 학습 자료 섹션 1. 기본문제풀이.pdf의 12쪽 ‘대문자로 통일’와 문제 조건·예제를 대조했습니다. 같은 ZIP의 해당 문제 TXT는 풀이 코드 자료입니다. 이 자료의 최초 출제 원문·저자·공개 배포 주소까지 확인한 것은 아닙니다.
이번 대조는 원자료의 문제 조건과 예제 확인입니다. 이 글의 전체 코드를 새로 실행하거나 공식 채점에 제출한 결과를 뜻하지 않습니다. 아래 예제·자가 확인 항목은 직접 실행해 기대 출력과 비교하는 기준입니다.
표준 입력에서 문자열을 읽고 toUpperCase()로 전체를 대문자로 바꾼 뒤 출력합니다. 문자마다 별도의 조건문을 둘 필요가 없습니다.
알고리즘 설계

제공된 풀이처럼 각 문자의 코드가 소문자 a부터 z 범위인지 확인하고 32를 빼는 방법도 영문 알파벳에는 맞습니다. 다만 범위 조건과 문자 코드 계산을 직접 관리해야 하므로, 이 문제에서는 문자열 전체를 변환하는 toUpperCase()가 더 간결하고 의도를 바로 드러냅니다.
toUpperCase()는 원본 문자열을 바꾸지 않고 변환된 새 문자열을 반환합니다. 입력 길이가 최대 100이므로 문자열을 한 번 순회하는 방식이면 제한 안에서 충분합니다.

아래 코드는 Node.js의 표준 입력을 문자열로 읽어 결과를 출력합니다.
전체 문자열을 한 번에 대문자로 바꾸는 아래 코드를 solution.cjs에 저장합니다. Node.js에서 실행하며 브라우저 Console에는 파일 읽기 코드를 붙이지 않습니다. input.txt에는 ItisTimeToStudy 한 줄을 넣습니다. Bash·명령 프롬프트는 node solution.cjs < input.txt, PowerShell은 cmd /c “node solution.cjs < input.txt”로 실행하며 기대 출력은 ITISTIMETOSTUDY입니다. 원래 대문자는 유지되고 소문자만 바뀌었는지 입력과 나란히 확인하세요.
const fs = require('fs');
const input = fs.readFileSync(0, 'utf8').trim();
console.log(input.toUpperCase());
trim()은 마지막 개행만이 아니라 문자열 앞뒤의 공백·탭·개행을 모두 제거합니다. 이 문제의 입력은 영문 문자열 하나이므로 간결하게 사용할 수 있지만, 앞뒤 공백도 데이터인 문제라면 줄바꿈만 제거하는 방식으로 바꿔야 합니다.
| 단계 | 값 |
|---|---|
| 입력 | ItisTimeToStudy |
| 대문자 변환 | ITISTIMETOSTUDY |
| 출력 | ITISTIMETOSTUDY |
복잡도와 검증
문자열 길이를 N이라 하면 모든 문자를 확인하므로 시간 복잡도는 O(N)입니다. 입력 문자열 저장 공간은 O(N)이고, 변환 결과로 새 문자열이 만들어지므로 풀이의 추가 공간도 O(N)입니다.
| 입력 | 기대 출력 | 확인 목적 |
|---|---|---|
ItisTimeToStudy |
ITISTIMETOSTUDY |
원문 예제 |
hello |
HELLO |
모두 소문자 |
ALREADY |
ALREADY |
이미 대문자 |
aBcZ |
ABCZ |
혼합 문자열 |
이 문제를 푼 뒤 확인하기
이미 대문자인 문자와 소문자인 문자가 섞인 입력을 변환해 보세요.
본문의 예제와 이 반례를 직접 실행해 예상 출력과 비교하고, 결과가 다르면 입력 조건과 반복 범위를 다시 확인하세요.
이 글이 도움이 되었나요?
이어서 공부하기
체크포인트: 해설을 가리고 다시 풀고, 경계 입력을 하나 바꾸어 예상 결과와 실제 결과를 비교하세요. 같은 문자·찾는 문자 없음·홀짝 길이를 확인하고 결과의 등장 순서를 설명하세요.
다음 추천 · 문제: 대소문자 변환 풀이
권장 순서는 학습 가이드와 같습니다. 다른 순서는 접힌 참고 목록에서 확인할 수 있습니다. 읽음 표시는 숙달이나 채점 결과가 아닙니다.
원래 과정 목록 순서 (선택)
읽음 기록
읽음 — / 전체 58개 · 필수 58개
새 글 받아보기
RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.