KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (486)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (431)
      • 백준 (187)
      • Programmers (104)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • 제코베 JS 100제
  • Level 1
  • 다이나믹 프로그래밍
  • C++
  • tree
  • 수학
  • 정렬
  • js
  • Level1
  • Level 2
  • 백준
  • recursion
  • C
  • programmers
  • codeup
  • LeetCode
  • 그래프
  • string
  • Level 0
  • 문자열

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/백준

백준 / String(문자열) / 11365번 / !밀비 급일 / C

2021. 2. 27. 14:56

문제

당신은 길을 가다가 이상한 쪽지를 발견했다. 그 쪽지에는 암호가 적혀 있었는데, 똑똑한 당신은 암호가 뒤집으면

해독된다는 것을 발견했다.

이 암호를 해독하는 프로그램을 작성하시오.

입력

한 줄에 하나의 암호가 주어진다. 암호의 길이는 500을 넘지 않는다.

마지막 줄에는 "END"가 주어진다. (END는 해독하지 않는다.)

출력

각 암호가 해독된 것을 한 줄에 하나씩 출력한다.

예제 입력 1

!edoc doog a tahW

noitacitsufbo erafraw enirambus detcirtsernu yraurbeF

fo tsrif eht no nigeb ot dnetni eW

lla sees rodroM fo drol eht ,ssertrof sih nihtiw delaecnoC

END

예제 출력 1

What a good code!

obfustication

We intend to begin on the first of February unrestricted submarine warfare

Concealed within his fortress, the lord of Mordor sees all

 

#include <stdio.h>
#include <string.h>

#define MAX_LENGTH 500

int main() {
	char str[MAX_LENGTH];

	while (true) {
		fgets(str,MAX_LENGTH, stdin);
		str[strlen(str) - 1] = '\0';

		if (strcmp(str, "END") == 0)
			break;

		for (int i = strlen(str) - 1; i >= 0; i--) {
			printf("%c", str[i]);
		}
		printf("\n");
	}

	return 0;
}

거꾸로 출력해주는 간단한 문제처럼 보일 수 있지만,

중간에 공백이 껴있어서 gets나 fgets로 입력을 받아야 한다.

하지만 gets는 버퍼오버플로우가 발생할 수 있기 때문에 fgets를 쓰는 것을 추천한다.

 

그리고 fgets는 마지막의 개행문자(enter)까지 입력을 받기때문에, NULL로 바꿔줘야한다.

 

그리고 반목문을 이용해 거꾸로 출력해주면된다.

저작자표시 (새창열림)

'PS > 백준' 카테고리의 다른 글

백준 / 기본 수학 1 / 1712번 / 손익분기점 / C++  (0) 2021.07.13
백준 / String(문자열) / 10988번 / 팰린드롬인지 확인하기 / C  (0) 2021.02.27
백준 / String(문자열) / 1032번 / 명령 프롬프트 / C  (0) 2021.02.27
백준 / String(문자열) / 10798번 / 세로읽기 / C  (0) 2021.02.27
    'PS/백준' 카테고리의 다른 글
    • 백준 / 기본 수학 1 / 1712번 / 손익분기점 / C++
    • 백준 / String(문자열) / 10988번 / 팰린드롬인지 확인하기 / C
    • 백준 / String(문자열) / 1032번 / 명령 프롬프트 / C
    • 백준 / String(문자열) / 10798번 / 세로읽기 / C
    KimMinJun
    KimMinJun

    티스토리툴바