티스토리 뷰

Q.11654 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

 

입력 :

알파벳 소문자, 대문자 숫자 0-9 중 하나가 첫째 줄에 주어진다.

 

출력 :

입력으로 주어진 글자의 아스키 코드 값을 출력한다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.Scanner;
 
public class Main{
    public static void main(String[] argv){
        Scanner sc = new Scanner(System.in);
        
        String input = sc.next();
    
        System.out.println((int)input.charAt(0));
    }
}
 
 
cs

 

==========================================================================

Q.10809 알파벳 찾기

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

 

출력 :

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
 
public class Main{
    public static void main(String[] argv){
        Scanner sc = new Scanner(System.in);
        
        int[] arr = new int[26];
        for(int i = 0; i < 26; i++)
            arr[i] = -1;
 
        String s = sc.nextLine();
        
        for(int i = 0; i < s.length(); i++){        
            if(arr[s.charAt(i)-97== -1)
                arr[s.charAt(i)-97= i;        
        }
        
        for(int i = 0; i < 26; i++)
            System.out.print(arr[i]+" ");
    }
}
cs

 

==========================================================================

Q.2657 문자열 반복

문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 T를 만든 후 출력하는 프로그램을 작성하시오. 다시 설명하자면, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 T를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*+-./: 이다.

 

입력:

첫째 줄에 테스트 케이스의 개수 T(1 <= T <= 1,000)가 주어진다. 각 테스트 케이스는  반복 횟수 R(1 <= R <= 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도1이며, 20글자를 넘지 않는다. 

 

출력:

각 테스트 케이스에 대해 T를 출력한다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class Main{
    public static void main(String[] argv){
        Scanner sc = new Scanner(System.in);
        
        int T = sc.nextInt();
        
        for(int test_case = 0; test_case < T; test_case++){
            int r = sc.nextInt();
            String sentence = sc.next();
            String t = "";
            for(int i = 0; i < sentence.length(); i++){
                for(int j = 0; j < r; j++)
                    t += sentence.charAt(i);
            }
            System.out.println(t);
        }
    }
}
cs

 

==========================================================================

Q.1157 단어 공부

 

링크 : http://andamiro25.tistory.com/70

 

==========================================================================

Q.1316 그룹 단어 체커

 

링크 : http://andamiro25.tistory.com/72

 

==========================================================================

Q.2908 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 숫자 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른사람과 다르게 거꾸로 읽는다. 예를 들어, 734과 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.

 

출력 :

첫째 줄에 상수의 대답을 출력한다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
 
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(); int b = sc.nextInt();
        int Ra = 0, Rb = 0;
        
        while(a != 0) {
            Ra *= 10;
            Rb *= 10;
            Ra += a%10;
            Rb += b%10;
            
            a /= 10;
            b /= 10;
        }
    
        System.out.println(Ra > Rb ? Ra : Rb);
    }
}

cs

==========================================================================

Q.5622 다이얼

상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다.

전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 다른 숫자를 누르려면 다이얼이 원래 위치로 돌아가기를 기다려야 한다.

숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.

상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.

할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 시간을 구하는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어는 2글자~15글자로 이루어져 있다.

 

출력 :

첫째 줄에 다이얼을 걸기 위해서 필요한 시간을 출력한다.

 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;
 
public class Prac{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] dialString = {"","","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
        String comp = "";//문자의 포함 여부를 확인할 때 쓰일 변수 comp
        String input = sc.next();
        int answer = 0;
        
        for(int i = 2; i < 10; i++){
            for(int j = 0; j < input.length(); j++) {
                comp += input.charAt(j);//comp에 input의 i번째 문자 저장.
                if(dialString[i].contains(comp)) {//comp가 dialString[i]에 포함되어 있다면
                    answer += (i+1);//answer에 (i+1, 누르는 데 걸리는 시간) 더하기.
                }
                comp = ""//comp 초기화
            }
        }
        System.out.println(answer);
    }
}
cs

 

String.contains(String s) : String안에 문자열 s가 포함되어 있는지 확인한다.

==========================================================================

Q.2941 크로아티아 알파벳

 

링크 : andamiro25.tistory.com/73

 

==========================================================================

 

 

 

문제 사이트 및 참고 사이트 : https://www.acmicpc.net/step/7



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.

댓글