[백준] 10926번 : ??! (1단계) (C++)

2024. 1. 4. 18:36· 프로그래밍/코딩 테스트 연습
  • https://www.acmicpc.net/problem/10926
 

10926번: ??!

준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때

www.acmicpc.net

 


 

문제

 

 


 

 

해석

 

입력을 받은 문자열에 "??! " 문자열을 추가해서 출력하는 문제입니다. 문자열을 출력할 줄만 안다면 크게 고민 없이 문제를 해결할 수 있습니다.

 

 

 

 

 

 

풀이

 

C++에서는 문자열을 처리하는 방법이 두 가지입니다. char형과 string형인데 저는 보통 string함수를 이용합니다. 이유는 string 변수는 (char형의 경우 배열)를 기본값으로 초기화하지 않아도 되며. length()등 문자열을 처리하는 다양한 함수가 존재하기 때문입니다.

 

또한 string는 입력받는 데이터의 길이에 상관하지 않지만 char은 선언 시 크기를 선언해줘야 하기 때문에 번거롭습니다.

 

Case 1 : string 타입으로 해결하기

#include<iostream>
using namespace std;

int main(){
    string str;
    cin >> str;
    cout << str << "??!" <<endl;
}

 

str을 string 타입으로 선언 후 데이터를 받고 바로 출력하면 됩니다. cout의 출력 방식만 안다면 크게 문제없이 코드를 다음과 같이 작성하셨을 겁니다.

 

 

 

 

Case 2 : char 타입으로 해결하기

#include<iostream>
using namespace std;

int main(){
    char str[51];
    cin >> str;
    cout << str << "??!" <<endl;
}

 

char형으로 해결하는 코드입니다. str배열의 크기를 51로 설정했음을 주의해야 합니다. 아이디의 길이가 50을 넘지 않는다는 말은 50개의 문자가 들어올 수 있다는 뜻이고, 문자열 입력 후 문자 50개가 배열에 들어오면 마지막에 '\0'이 들어오기 때문에 50 + 1로 배열의 크기를 설정했습니다.

 

또한 str을 cin으로 받아 자동으로 문자열 마지막에 '\0'을 추가해 줍니다. 때문에 출력 시 char형의 빈 공간을 신경 쓰지 않아도 되기에 이번 문제에 한해서는 배열의 초기화를 생각하지 않아도 됩니다.

 

 


 

 

정리

 

문자열을 입력받고 출력하는 연습을 하는 문제입니다. char과 string의 차이점을 생각하고, char형의 경우 문자열 마지막에 ' \0 '을 저장해야 하기 때문에 받을 수 있는 최대 문자에 +1 한 크기의 배열을 선언해야 함을 주의합니다.

 

 

 

 

 

 

'프로그래밍 > 코딩 테스트 연습' 카테고리의 다른 글

[백준] 10430번 : 나머지 (1단계) (C++)  (1) 2024.01.05
[백준] 18108번 : 1998년생인 내가 태국에서는 2541년생?! (1단계) (C++)  (1) 2024.01.05
[백준] 10869번 : 사칙연산 (1단계) (C++)  (0) 2024.01.04
[백준] 1008번 : A / B (1단계) (C++)  (2) 2024.01.04
[백준] 10998번 : A * B (1단계) (C++)  (1) 2024.01.03
'프로그래밍/코딩 테스트 연습' 카테고리의 다른 글
  • [백준] 10430번 : 나머지 (1단계) (C++)
  • [백준] 18108번 : 1998년생인 내가 태국에서는 2541년생?! (1단계) (C++)
  • [백준] 10869번 : 사칙연산 (1단계) (C++)
  • [백준] 1008번 : A / B (1단계) (C++)
w_w
w_w
데이터 사이언스가 목표인 학생입니다. / 공부한 내용을 간단히 정리하는 블로그입니다. / 비공개 게시글은 저작권 보호를 위해 개인 소장 용도로만 사용합니다.
w_w
공부용
w_w
전체
오늘
어제
  • 전체 글 (78)
    • 대표글 (4)
    • 프로그래밍 (71)
      • C++ (8)
      • Python (1)
      • 알고리즘 (1)
      • 코딩 테스트 연습 (61)
      • 게임 (0)
    • 데이터베이스 (0)
      • 데이터 분석 및 시각화 (0)
      • 머신 러닝 (0)
    • 공학 (2)
      • 수학 기본 개념 (2)
    • 정보 (1)
      • AICE (1)
      • Excel (0)
      • Access (0)
      • kaggle (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • K-최근접 이웃
  • 텍스트I/O
  • c++
  • python
  • IT
  • 프로그래밍 언어
  • 데이터 분석
  • 데이터 연산
  • 엑셀 파일 통합
  • 그래프 꾸미기
  • 머신러닝
  • 바이너리 파일
  • 클래스
  • 연결 리스트
  • 연산자 중복
  • 연산자
  • 데이터 시각화
  • 데이터 분석 패키지
  • C언어 링킹
  • 머신 러닝
  • Excel
  • Matplotlib
  • 객체
  • K-평균 군집화
  • 자료구조
  • pandas
  • 바이너리I/O
  • 백준
  • 그래프 저장하기
  • 알고리즘

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
w_w
[백준] 10926번 : ??! (1단계) (C++)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.