View
https://www.acmicpc.net/problem/2577
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
📚 문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
예제 입력 | 예제 출력 |
5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOOOOOOO OOOOXOOOOXOOOOX |
10 9 7 55 30 |
💻 코드
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int count=0;
int tmp=0;
String[] array_word;
int[] score=new int[num];
for(int i=0;i<num;i++) {
String word=sc.next();
array_word=word.split("");
for(int j=0;j<array_word.length;j++) {
if(array_word[j].equals("O")) tmp+=1;
else tmp=0;
count+=tmp;
}
score[i]=count;
count=0;
tmp=0;
}
for(int i=0;i<num;i++) {
System.out.println(score[i]);
}
}
}
* split : split은 문자열에서 나누고싶은 문자를 기준으로 단어를 나눠 배열로 반환하여 준다.
- 공백으로 분리 : \\s
- 공백이 여러개인 경우 : \\s+
1
2
3
4
5
|
String str = "hello~java~world";
String[] arr = str.split("~");
for (String string : arr) {
System.out.println(string);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
hello
java
world
💡 다른 사람 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String[] str = new String[num+1];
for (int i = 0; i < num; i++) {
int count = 0, sum = 0;
str[i] = sc.next();
for (int j =0; j < str[i].length(); j++) {
if (str[i].charAt(j) == 'O')
sum += ++count;
else count = 0;
}
System.out.println(sum);
}
sc.close();
}
}
* charAt(인수) : 인수번째의 문자를 읽어낸다.
1
2
|
String a="abcd";
System.out.println(a.charAt(1));
|
b
indexOf(문자) : 해당 문자가 들어있는 위치를 알려준다. (문자가 없으면 -1 반환)
1
2
|
String a="abcd";
System.out.println(a.indexOf("c"))
|
2
subString(인수,인수) : 첫번째 인수는 시작지점 문자, 두번째 인수는 끝지점에 다음 문자
1
2
|
String a="abcde";
System.out.println(a.substring(1,3))
|
bc
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[문자열] 백준 11654번 아스키 코드(Java) (0) | 2020.02.17 |
---|---|
[1차원 배열] 백준 2577번 숫자의 개수(Java) (0) | 2020.02.17 |
[1차원 배열] 백준 2566번 최댓값(Java) (0) | 2020.02.17 |
reply