연습장

08. 문자열 돌리기 본문

프로그래머스/0단계

08. 문자열 돌리기

js0616 2023. 6. 17. 21:33

Q. 문자열 str이 주어집니다.
문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.

 

제한사항

1 ≤ str의 길이 ≤ 10

 

입력

abcde

출력

a
b
c
d
e

 

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    
});

 


문제에서 90도 돌렸다고 표현했지만 결국 스트링을 쪼개서 하나씩 출력해보라는 문제와 같다.

앞서 봤던 [...str]  , map , 화살표함수를 사용할때가 왔다.

 

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    [...str].map((x) => {console.log(x)}) 
    
});

 

str // 'abcde' 의 문자열을

[...str] 를 이용하여 배열 ['a' , 'b' , 'c' , 'd' , 'e' ] 로 만들고

map 함수를 이용하여 각각의 배열원소 모두에 대해 함수를 진행

함수는 배열의 값을 (x) 가져와서 console.log(x) 명령을 실행 

 

for 문을 이용하지 않고 간략하게 코드를 만들 수 있다. 

 


다른사람 풀이

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    [...str].forEach(c => console.log(c))
});

 

map 대신 forEach 를 사용했으며

 

화살표함수에서 인자 1개를 사용하므로 ( )  를 생략한것으로 보인다.

 

forEach : 배열의 요소를 반복하며 함수를 호출합니다. 이 루프 방법은 map 및 set에서도 사용할 수 있습니다.

 

forEach()는 배열 요소마다 한 번씩 주어진 함수(콜백)를 실행.

map()은 배열요소마다 한번씩 주어진 함수(콜백)를 실행 및  호출한 결과를 모아 새로운 배열을 반환한다. 


Reference

 

 

https://dream-frontend.tistory.com/341

'프로그래머스 > 0단계' 카테고리의 다른 글

10. 문자열 겹쳐쓰기  (0) 2023.06.17
09. 홀짝 구분하기  (0) 2023.06.17
07. 문자열 붙여서 출력하기  (0) 2023.06.17
06. 덧셈식 출력하기  (0) 2023.06.17
05. 특수문자 출력하기  (0) 2023.06.17