728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com

import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
int n = sc.nextInt();
sc.nextLine();
StringBuilder sb = new StringBuilder();
StringBuilder ans = new StringBuilder();
String str = sc.nextLine();
sb.append(str);
while (sb.charAt(sb.length() - 1) != '!' && sb.charAt(sb.length() - 1) != '?'
&& sb.charAt(sb.length() - 1) != '.') {
sb.append(" "+sc.nextLine()); //띄어쓰기를 주지 않으면 한 개의 이름으로 되어버린다.
}
System.out.println(sb);
String[] sentence = new String[n];
sentence = sb.toString().split("[!?.]");
// System.out.println(Arrays.toString(sentence));
for (int i = 0; i < sentence.length; i++) {
int cnt = 0;
String[] focus = sentence[i].trim().split(" "); //trim하면 없어지긴 해도 밑에 continue있어야함.
// System.out.println(Arrays.toString(focus));
for (int j = 0; j < focus.length; j++) {
String target = focus[j];
boolean isName = true;
if (target.equals("")) { //중간에 스페이스 바 두 번들어갈 수 있어서 무조건 줘야
continue;
}
if ((target.charAt(0) >= 'A' && target.charAt(0) <= 'Z')) {
for (int k = 1; k < target.length(); k++) {
if (!(target.charAt(k) >= 'a' && target.charAt(k) <= 'z')) {
isName = false;
break;
}
}
if (isName) {
cnt++;
}
}
}
ans.append(cnt + " ");
}
System.out.println("#" + tc + " " + ans);
}
}
}
import java.util.Arrays;
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
int n = sc.nextInt();
sc.nextLine();
StringBuilder sb = new StringBuilder();
String str = sc.nextLine();
sb.append(str);
while(sb.charAt(sb.length()-1)!='?'&&sb.charAt(sb.length()-1)!='.'&&sb.charAt(sb.length()-1)!='!'){
String next = sc.nextLine();
sb.append(" "+next);
//System.out.println(sb);
}
//System.out.println(sb);
String arr[] = new String[n];
arr = sb.toString().split("[!.?]");
//System.out.println(Arrays.toString(arr));
System.out.print("#" + tc + " ");
for (int i = 0; i < n; i++) {
String target = arr[i].trim(); //trim하면 없어지긴 해도 밑에 continue있어야함.
String arr1[] = target.split(" ");
int cnt = 0;
//System.out.println(Arrays.toString(arr1));
for (int j = 0; j < arr1.length; j++) {
String ans = arr1[j];
boolean isPossible=true;
if (ans.equals("")) //중간에 스페이스 바 두 번들어갈 수 있어서 무조건 줘야
continue;
if (ans.charAt(0) >= 'A' && ans.charAt(0) <= 'Z') {
for(int k=1;k<ans.length();k++) {
if(!(ans.charAt(k)>='a'&&ans.charAt(k)<='z')){
isPossible=false;
break;
}
}
if(isPossible)
cnt++;
}
}
System.out.print(cnt + " ");
// System.out.println(Arrays.toString(arr1));
}
System.out.println();
// System.out.println(Arrays.toString(arr));
}
}
}
두 가지 방법 다 조금 깔끔하진 못하게 푼 거 같아서
다시 풀어봐야겠다.
728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 명진이와 동휘의 숫자 맞추기 (D3) (0) | 2024.10.13 |
|---|---|
| [SW Expert Academy] 사랑의 카운슬러 (D3) (0) | 2024.10.13 |
| [SW Expert Academy] Digit sum (D3) (1) | 2024.10.12 |
| [SW Expert Academy] 등차수열 만들기 (D3) (0) | 2024.10.12 |
| [SW Expert Academy] 그래프의 삼각형 (D3) (0) | 2024.10.08 |