본문 바로가기
Problem Solving/SWEA

[SWEA] 4676. 늘어지는 소리 만들기

by 테리는당근을좋아해 2020. 2. 21.

문제

단어에 '-'(하이픈)을 넣어 늘어지는 단어를 만드려고 한다.

 

예를 들어 'wow'라는 문자열이 입력되었을 때, 'o' 뒤편에 두 개의 하이픈을, 'w'뒤편에 한 개의 하이픈을 넣어 'wo--w-'을 만든다.

 

단어와 아이픈의 인덱스가 주어질 때, 늘어진 단어를 구하는 문제

 

풀이방법

입력된 문자열에 하이픈을 삽입한다. 단, 단어의 앞쪽부터 삽입하면 단어의 인덱스가 삽일할 때 마다 변경되므로 뒤쪽부터 삽입한다.

 

소스코드

package samsung;

import java.util.*;

public class s_4676 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			String s = sc.next();
			LinkedList a = new LinkedList();
			for(int i = 0; i < s.length(); i++) {
				a.add(s.charAt(i));
			}
			int n = sc.nextInt();
			ArrayList <Integer> idx = new ArrayList();
			for(int i = 0; i < n; i++) {
				int tmp = sc.nextInt();
				idx.add(tmp);
			}
			
			Collections.sort(idx, Collections.reverseOrder());
			
			for(int i = 0; i < idx.size(); i++) {
				a.add(idx.get(i), '-');
			}
			System.out.print("#" + t + " ");
			for(int i = 0; i < a.size(); i++) {
				System.out.print((char)a.get(i));
			}
			System.out.println();
		}
	}
}

 

댓글