이번 문제는 아래 링크에서 풀어볼 수 있습니다.
9093번: 단어 뒤집기
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는
www.acmicpc.net
문제
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.
출력
각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.
예제 입력 1
2
I am happy today
We want to win the first prize
예제 출력 1
I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp
정답 코드
나의 풀이
import sys n = int(sys.stdin.readline().rstrip()) for _ in range(n): result = "" for s in sys.stdin.readline().split(): # 방법 1 reversed = "" for c in s: reversed = c + reversed result += reversed + " " # 방법 2 # result += "".join(reversed(s)) + " " # 방법 3 # for c in reversed(s): # result += c # 방법 4 # for i in range(len(s) - 1, -1, -1): # result += s[i] # result += " " print(result)
모범 답안
import sys n = int(sys.stdin.readline().rstrip()) for _ in range(n): words = sys.stdin.readline().rstrip().split() for word in words: # print(word[::-1], end=' ') # 단어 뒤집고 끝 값을 end로써 개행문자 -> 공백으로 처리 print("".join(reversed(word)), end=" ") print() # 한 문장 끝나면 행갈이
자바스크립트/NodeJS 풀이 모음
const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().trim().split('\n'); const n = parseInt(input[0]); const data = input.splice(1).map((val) => val.trim()); const solution1 = (n, data) => { for (let i of data) { let result = ''; for (let j of i.split(' ')) { let reversed = ''; for (let k of j) { reversed = k + reversed; } result += reversed + ' '; } console.log(result); } }; console.log('solution1'); solution1(n, data); const solution2 = (n, data) => { for (let i of data) { let result = ''; for (let j of i.split(' ')) { result += j.split('').reverse().join('') + ' '; } console.log(result); } }; console.log('solution2'); solution2(n, data); const solution3 = (n, data) => { for (let i of data) { let result = ''; for (let j of i.split(' ')) { for (let k of j.split('').reverse()) { result += k; } result += ' '; } console.log(result); } }; console.log('solution3'); solution3(n, data); const solution4 = (n, data) => { for (let i of data) { let result = ''; for (let j of i.split(' ')) { for (let k = j.length - 1; k >= 0; k -= 1) { result += j[k]; } result += ' '; } console.log(result); } }; console.log('solution4'); solution4(n, data);
문제 풀이
파이썬으로 문자열을 뒤집는 다양한 방법에 대해 학습할 수 있는 문제이다. 방법이야 어찌됐든 반복문으로 입력값을 탐색하며 탐색하는 단어를 뒤집어서 반환하면 되는 문제이다.
문자열을 뒤집는 데 활용한 다양한 방법 및 메서드에 대한 설명은 아래 함께 보기란의 링크를 참조하면 된다.
함께 보기
파이썬 join() - 제타위키
다음 문자열 포함...
zetawiki.com
reversed(), slicing, reverse() 등
파이썬의 reversed() 함수로 거꾸로 루프 돌리기 (vs. slicing 연산자 & reverse() 함수)
Engineering Blog by Dale Seo
www.daleseo.com
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Baekjoon] 1874 스택 수열(파이썬 python) (0) | 2022.12.22 |
---|---|
[Baekjoon] 9012 괄호(파이썬/자바스크립트/NodeJS) (0) | 2022.12.22 |
[Baekjoon] 10828 스택(파이썬 python) (0) | 2022.12.21 |
[프로그래머스] level 3 기둥과 보 설치(파이썬/자바스크립트) (0) | 2022.12.18 |
[Baekjoon] 3190 뱀(파이썬/자바스크립트/NodeJS) (0) | 2022.12.15 |
댓글