반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학1 중 설탕 배달 ( 문제 번호 : 2839 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

이 문제는 21과 8같은 숫자도 한번 예제로 입력해 보는게 좋을거같아요!

 

1) JAVA

import java.io.IOException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws IOException{
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		scan.close();
		
		//5로 나눴을때 잘되는게 최우선
		if(n%5==0){
			System.out.println(n/5);
		}else{
			//5로 최대한 나눈뒤 3으로 나누어졌을때 가능한거
			int max_num = n/5;
			for(int i=max_num; i>0; i--){
				int calc = n-(5*i);
				if(calc%3==0){
					System.out.println(i+(calc/3));
					return;
				}
			} 
			
			//3으로 최대한 나누는거
			if(n%3==0){
				System.out.println(n/3);
			}else{
				System.out.println(-1);
			}
		}
	}
}

 

2) PYTHON

   * cnt는 3키로의 최소개수를 구하는 count

n = int(input())
if n % 5 == 0:
    print(n//5)
else:
    calc = n//5
    cnt = 0
    result = 0
    while True:
        n -= 3
        cnt += 1
        if n % 5 == 0:
            result = cnt + (n//5)
            break
        if n < 0:
            result = -1
            break
    print(result)

 

여러분도 한번 풀어보세요!

 

반응형
반응형

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학1 중 손익분기점 ( 문제 번호 : 1712 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

   시간제한이 0.35초라 런타임에러가 떠서 BufferedReader와 StringTokenizer를 사용했다.

   그리고 A, B, C는 21억 이하의 자연수라고 해서 long으로 처리하였다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class backJoon_1712 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		long a = Integer.parseInt(st.nextToken());
		long b = Integer.parseInt(st.nextToken());
		long c = Integer.parseInt(st.nextToken());
		br.close();
		
		if(c <= b){
			System.out.println(-1);
		}else{
			System.out.println(a /(c-b) +1);
		}
	}
}

 

2) PYTHON

a, b, c = list(map(int, input().split()))
if b >= c:
    print(-1)
else:
    print((a // (c-b))+1)

 

여러분도 한번 풀어보세요!

 

반응형
반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 문자열 중 크로아티아 그룹 단어 체커 ( 문제 번호 : 1316 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int count = Integer.parseInt(br.readLine());
		int result = count;
		for(int i=0; i<count; i++){
			String words = br.readLine();
			String prev = String.valueOf(words.charAt(0));
			ArrayList<String> list = new ArrayList<String>();
			for(int k=0; k<words.length(); k++){
				String w = String.valueOf(words.charAt(k));			
				if(!prev.equals(w) && list.contains(w)){
					result--;
					break;
				}
				prev = String.valueOf(words.charAt(k));
				list.add(w);
			}
		}
		System.out.println(result);
		br.close();
	}
}

 

2) PYTHON

n = int(input())
result = n
for i in range(n):
    words = input()
    dup = ''
    for j in range(1, len(words)):
        if words[j-1] != words[j] and words[0:j-1].__contains__(words[j]):
            result -= 1
            break
print(result)

 

여러분도 한번 풀어보세요!

 

반응형
반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 문자열 중 크로아티아 알파벳 ( 문제 번호 : 2941 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String alphabat = scan.nextLine();
		scan.close();
		String[] c = {"c=","c-","dz=","d-","lj","nj","s=","z="};
		for(int i=0; i<c.length;i++){
			while(alphabat.contains(c[i])){
				alphabat = alphabat.replaceFirst(c[i], " ");
			}
		}
		System.out.println(alphabat.length());
	}

}

 

2) PYTHON

alpha = input()
word = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
for i in word:
    alpha = alpha.replace(i, ' ')
print(alpha.__len__())

 

여러분도 한번 풀어보세요!

 

반응형
반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 문자열 중 다이얼 ( 문제 번호 : 5622 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		String num = scan.nextLine();
		scan.close();
		int time = 0;
		
		for(int i=0; i<num.length();i++){
			char text = num.charAt(i);
			if(text >='A' && text <= 'C'){
				time += 3;
			}else if(text >='D' && text <= 'F'){
				time += 4;
			}else if(text >='G' && text <= 'I'){
				time += 5;
			}else if(text >='J' && text <= 'L'){
				time += 6;
			}else if(text >='M' && text <= 'O'){
				time += 7;
			}else if(text >='P' && text <= 'S'){
				time += 8;
			}else if(text >='T' && text <= 'V'){
				time += 9;
			}else{
				time += 10;
			}
		}
		System.out.println(time);
	}
}

 

2) PYTHON

    * 알파벳을 숫자 단위로 묶어서 index 번호로 time을 더해준다 0부터 시작하니까 +3으로 한다.

num = input()
alphabet = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
time = 0
for i in range(len(num)):
    for j in alphabet:
        if num[i] in j:
            time += alphabet.index(j)+3
print(time)

 

여러분도 한번 풀어보세요!

 

반응형
반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 문자열 중 상수 ( 문제 번호 : 2908 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] number = scan.nextLine().split(" ");
		int[] result = new int[number.length];
		
		for(int i=0; i<number.length; i++){
			String reverse = "";
			for(int j=0; j<number[i].length(); j++){
				reverse += number[i].charAt(number[i].length()-j-1);
			}
			result[i] = Integer.parseInt(reverse);
		}
		
		if(result[0] < result[1]){
			System.out.println(result[1]);
		}else{
			System.out.println(result[0]);
		}
		
		scan.close();
	}
}

 

2) PYTHON

number = input().split()
result = []
for i in range(len(number)):
    reverse = ''
    size = len(number[i])
    for j in range(size):
        reverse += number[i][size-j-1]
    result.append(reverse)
print(max(result))

 

여러분도 한번 풀어보세요!

 

반응형
반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 문자열 중 단어의 개수 ( 문제 번호 : 1152 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

    * 공백만 들어왔을경우도 생각을 해서 짜야함

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		String[] words = scan.nextLine().trim().split(" ");
		if(words[0].isEmpty()){
			System.out.println(0);
		}else{
			System.out.println(words.length);
		}
		scan.close();
	}
}

 

2) PYTHON

words = input().split()
print(len(words))

 

여러분도 한번 풀어보세요!

 

반응형
반응형

 

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 문자열 중 단어 공부 ( 문제 번호 : 1157 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		String word = scan.nextLine().toUpperCase(); //대소문자 구별하지 않기위해
		scan.close();
		int[] arr = new int[26];
		int max = 0;
		char result ='?'; 
		for(int i=0; i<word.length(); i++){
			arr[word.charAt(i)-'A']++; //index를 0부터 하기 위해서 arr[0]=>'A'값이 들어가도록
			if(max < arr[word.charAt(i)-'A']){
				max = arr[word.charAt(i)-'A'];
				result = word.charAt(i);
			}else if(max == arr[word.charAt(i)-'A']){ //가장 많이 사용된 알파벳이 여러 개 존재
				result='?';
			}
		}
		System.out.println(result);
	}
}

 

2) PYTHON

   * set으로 중복되는 단어 미리 제거 후 해당 단어들에 대하여 count 한 것을 max 값과 비교

word = input().upper()
w_list = set(word)
result = ''
max_cnt = 0

for i in w_list:
    if max_cnt < word.count(i):
        max_cnt = word.count(i)
        result = i
    elif max_cnt == word.count(i):
        result = '?'
print(result)

 

여러분도 한번 풀어보세요!

 

반응형

+ Recent posts