백준 풀고 기록 남기기 시작!!
사용 안 한지 오래된 언어가 많아서 쉬운 것부터 시작해보기로 했다. 까먹은 것도 많아서 복습 겸 ..
체스는 총 16개의 피스를 사용한다.
: 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개
Q. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.
입력 :
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
출력 :
첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하는 것이고, 음수라면 제거해야 하는 것이다.
1. Python
def result():
answer = ""
original = [1,1,2,2,2,8]
string = input()
num = string.split()
for i,j in zip(original,num):
answer += (str((i-int(j))) + " ")
return answer
print(result().rstrip())
1. 사용자로부터 입력 받기
파이썬에서는 `input()` 함수를 통해 사용자로부터 입력을 받는다.
2. 문자열 쪼개기
"문자열".split()
"문자열".split('구분자')
"문자열".split('구분자', 분할횟수)
"문자열".split(sep='구분자', maxsplit=분할횟수)
여기서 sep 파라미터는 문자열을 자르는 기준이다. 디폴트 값은 none이고, 이때 엔터를 구분자로 나눈다.
maxsplit 파라미터는 분할회수를 나타내는데, 디폴트 값은 -1이다. 이때, 분할 횟수의 제한 없이 나눌 수 있다.
3. for 문에서 변수 여러개 사용하기
enumerate(범위, 시작지점)
list = ['a', 'b', 'c']
for index, element in enumerate(list):
print(index, element)
시작 지점을 지정하지 않으면 0부터 시작한다. index는 0, 1, 2가 순서대로 들어가고 element에는 'a', 'b', 'c'가 순서대로 들어간다.
시작 지점을 1로 지정하면 index에는 1, 2, 3 값이 순서대로 들어간다.
zip(list1, list2)
abc = ['a', 'b', 'c']
num = [1, 2, 3]
for i, j in zip(abc, num):
print(i, j)
리스트 2개를 인자로 넣어 각각 순서대로 출력한다.
4. 타입 변환하기
int("1")
str(1)
변환하려는 값을 인자로 전달한다.
5. 공백 제거하기
"문자열".replace("제거할 문자", "대체할 문자")
"문자열".strip()
: 양쪽 공백 제거"문자열".lstrip()
: 왼쪽 바깥 공백 제거"문자열".rstrip()
: 오른쪽 바깥 공백 제거
2. Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
int[] original = { 1, 1, 2, 2, 2, 8 };
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
String[] nums = input.split(" ");
String answer = "";
for (int i = 0; i < original.length; i++) {
answer += Integer.toString(original[i] - Integer.parseInt(nums[i])) + " ";
}
scan.close();
System.out.println(answer);
}
}
1. 사용자로부터 입력 받기
Scanner scan = new Scanner(System.in);
스캐너 객체를 선언한 후 사용한다.
scan.next()
: 기본적으로 공백을 기준으로 입력받는다.scan.nextLine()
: 엔터를 기준으로 입력받는다.scan.nextInt()
: int 타입으로 입력받는다.scan.nextDouble()
: double 타입으로 입력받는다.
이 외에도 다른 타입으로도 입력 받을 수 있다.
2. 문자열 쪼개기
input.split(" ")
파이썬과 마찬가지로 문자열을 나눌 기준을 인자로 전달한다.
3. 타입 변환하기
Integer.toString()
: int 타입을 String으로 변환한다.
Integer.parseInt()
: String 타입을 int로 변환한다.
C언어랑 C++도 복습해보고 싶었는데 정말 다 까먹은 것 같다.. ㅠㅠ 조금씩 공부해야겠다.
'백준' 카테고리의 다른 글
[백준] 브론즈Ⅲ : 2566번 (0) | 2024.03.31 |
---|---|
[백준] 브론즈Ⅲ : 2738번 (0) | 2024.03.31 |
[백준] 브론즈Ⅴ : 10869번 (0) | 2024.03.30 |
[백준] 브론즈Ⅴ : 1000번 (1) | 2024.03.30 |
[백준] 브론즈Ⅲ : 10988번 (0) | 2024.03.20 |