[JAVA] 백준 2675번 : 문자열 반복

2021. 7. 10. 16:17·Computer Science/자료구조와 알고리즘

1. 문제

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다.

 

2. 코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

			Scanner sc = new Scanner(System.in);
			int n= sc.nextInt();
			
			for(int i=0;i<n;i++) {

				int num = sc.nextInt();
				String str = sc.next();

				for(int j=0;j<str.length();j++) {
					for(int k=0;k<num;k++) {
						System.out.print(str.charAt(j));
					}
				}
				System.out.println();			
			}		
			sc.close();		
	}

}

 

3. 풀이

처음엔 엄청 복잡하게 생각했었는데, 자바 메소드를 이용하면 별거 아닌 문제였다. 내 고민은 크게 두가지였다.

(1) "3 ABC" 와 같이 반복할 횟수와 문자열을 어떻게 입력받고 분리할지? 

(2) "ABC" 문자열의 각 원소"A","B","C"를 어떻게 뽑아낼까,, split을 이용해서 분리를 해야되나..?

 

이것 저것 방법을 찾아보니 해결방법은 별거 아니었다

(1) 각각 따로 입력받으면 된다. 한 줄씩 입력받지 않고 scanner.nextInt()와 scanner.next()를 이용해서 따로 입력받으면 된다. 한 줄! 이라는 생각을 버리면 된다.

대신 유의할 점은 nextLine()으로 입력받으면 안된다! 입력과정에서 엔터값을 입력받을 때까지 공백을 포함해서 한줄을 읽어버린다.

처음에 생각한 방식은 nextLine()을 이용해서 split(" ")을 통해 나눌 생각이었지만, 더 편한 방법이 있기에 취소

 

(2) charAt을 이용해서 문자 뽑기

String변수.charAt(index)를 이용하면 index에 해당하는 문자를 뽑을 수 있다

 

4. 링크

https://www.acmicpc.net/problem/2675

 

2675번: 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다

www.acmicpc.net

 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > 자료구조와 알고리즘' 카테고리의 다른 글

[Python] 수행시간과 메모리 사용량 측정  (0) 2021.07.16
[프로그래머스/JAVA] 해시 - Lv1 완주하지 못한 선수  (2) 2021.07.14
[Algorithm] Exhaustive Search(완전검색), Greedy Algorithm(탐욕 알고리즘), Sort(정렬)  (0) 2021.07.07
[JAVA] 백준 10809번 : 알파벳 찾기  (0) 2021.03.30
[알고리즘] 역순 정렬 및 값 교환  (0) 2021.02.11
'Computer Science/자료구조와 알고리즘' 카테고리의 다른 글
  • [Python] 수행시간과 메모리 사용량 측정
  • [프로그래머스/JAVA] 해시 - Lv1 완주하지 못한 선수
  • [Algorithm] Exhaustive Search(완전검색), Greedy Algorithm(탐욕 알고리즘), Sort(정렬)
  • [JAVA] 백준 10809번 : 알파벳 찾기
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    해시
    mysql error
    cmd error
    오블완
    c++error
    LNK2001
    런타임 에러
    leetcode
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 백준 2675번 : 문자열 반복
상단으로

티스토리툴바