Apple is Apple
[BOJ - 18917] [백준 - 18917] 수열과 쿼리38[Silver - 3] [Solved by Kotlin]
PS/BOJ 2024. 5. 29. 15:49

문제 설명처음에 0이 하나 포함되어있는 배열 A가 있다. 이때, 다음 쿼리를 수행해야 한다.1 x: A의 가장 뒤에 x를 추가한다.2 x: A에서 x를 제거한다. A에 x가 두 개 이상 있는 경우에는 가장 앞에 있는 하나만 제거한다. 항상 A에 x가 있는 쿼리만 주어진다.3: A에 포함된 모든 원소를 더한 값을 출력한다.4: A에 포함된 모든 원소를 XOR한 값을 출력한다.입출력 예입력첫째 줄에는 쿼리의 개수 M이 주어진다. 둘째 줄부터 다음 M 개의 줄에 쿼리가 주어진다. 출력    x번째 줄에는 x번째 글을 쓰고 난 후에 메모장에 남아 있는 키워드의 개수를 출력해 주세요. 제한1 ≤ M ≤ 500 0001 ≤ x ≤ 1 000 000 0003번 혹은 4번 쿼리가 적어도 하나 주어진다.예제 입력121 ..

article thumbnail
[BOJ - 22233] [백준 - 22233] 가희와 키워드[Silver - 2] [Solved by Kotlin]
PS/BOJ 2024. 2. 19. 16:35

문제 설명 가희는 블로그를 운영하고 있습니다. 가희는 블로그에 글을 쓰기 위해, 메모장에 키워드를 적곤 합니다. 지금까지 메모장에 써진 키워드는 모두 서로 다르며, 총 N개가 존재합니다. 가희는 새로운 글을 작성할 때, 최대 10개의 키워드에 대해서 글을 작성합니다. 이 키워드들 중에 메모장에 있었던 키워드는 가희가 글을 쓴 이후, 메모장에서 지워지게 됩니다. 가희는 블로그에 글을 쓰고 나서, 메모장에 있는 키워드 개수가 몇 개인지 알고 싶습니다. 가희를 도와주세요. 입출력 예 입력 첫 번째 줄에 가희가 메모장에 적은 키워드 개수 N, 가희가 블로그에 쓴 글의 개수 M이 공백으로 구분해서 주어집니다. 2번째 줄부터 N+1번째 줄까지 메모장에 적은 키워드 N개가 주어집니다. N+2번째 줄부터 N+M+1번째..

article thumbnail
[BOJ - 5397] [백준 - 5397] 키로거[Silver - 2] [Solved by Kotlin]
PS/BOJ 2024. 1. 8. 14:28

문제 설명 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다. 입출력 예 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1..

article thumbnail
[BOJ - 5430] [백준 - 1269] 대칭차집합[Silver - 4] [Solved by Kotlin]
PS/BOJ 2023. 12. 13. 21:04

문제 설명 자연수를 원소로 갖는 공집합이 아닌 두 집합 A와 B가 있다. 이때, 두 집합의 대칭 차집합의 원소의 개수를 출력하는 프로그램을 작성하시오. 두 집합 A와 B가 있을 때, (A-B)와 (B-A)의 합집합을 A와 B의 대칭 차집합이라고 한다. 예를 들어, A = { 1, 2, 4 } 이고, B = { 2, 3, 4, 5, 6 } 라고 할 때, A-B = { 1 } 이고, B-A = { 3, 5, 6 } 이므로, 대칭 차집합의 원소의 개수는 1 + 3 = 4개이다. 입출력 예 입력 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어진다. 각 집합의 원소..

article thumbnail
[BOJ - 5430] [백준 - 28278] 스택2 [Silver - 4] [Solved by Kotlin]
PS/BOJ 2023. 12. 7. 22:02

문제 설명 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. 1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000) 2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. 3: 스택에 들어있는 정수의 개수를 출력한다. 4: 스택이 비어있으면 1, 아니면 0을 출력한다. 5: 스택에 정수가 있다면 맨 위의 정수를 출력한다. 없다면 -1을 대신 출력한다. 입출력 예 입력 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 출력을 요구하는 명령은 하나 이상 주어진다. 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력 출력을 요구하는 명령이 주어질 때마다 명령의 결과를 ..

[BOJ-17213][백준 17213] 과일 서리 [SILVER-2][Solved by Kotlin]
PS/BOJ 2023. 10. 6. 21:03

입력 및 출력 입력: 첫째 줄에 과일의 종류 수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄에 훔치려 하는 과일의 개수 M(N ≤ M ≤ 30)이 주어진다. 출력: 첫째 줄에 훔칠 수 있는 경우의 수를 출력한다. 풀이 민건이는 N 종류의 과일을 재배 중이라고 하고있다. 이때, 지환이가 과일을 훔치게 되는데, 민건이가 가지고 있는 모든 과일을 하나씩 훔치면서, 훔칠 수 있는 경우의 수를 찾는 것이다. 입력 예시를 보자. 과일의 종류의 수가 3개이고, 훔치려는 과일의 개수가 10개이다. 모든 종류의 과일을 적어도 1개씩을 훔쳐야 하므로, 뽑은 과일의 종류를 또 훔치는 것이 허용된다. 이렇게 하여 총 10개를 뽑는 것이다. 결론지으면 3가지 종류 중 중복을 허락하여 10개를 뽑으라는 의미이다. 이것은 중복조..

article thumbnail
[BOJ - 5430] [백준 - 5430] AC [Gold - 5] [Solved by Kotlin]
PS/BOJ 2023. 8. 11. 16:12

문제 설명 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수이다. 배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 구하는 프로그램을 작성하시오. 입출력 예 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 100이다...

[BOJ-11404][백준 11404] 플로이드[GOLD-4][Solved by Kotlin]
PS/BOJ 2023. 4. 22. 23:44

문제 n(2 ≤ n ≤ 100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1 ≤ m ≤ 100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다. 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구하는 프로그램을 작성하시오. 입력 및 출력 입력: 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보..

[BOJ-2941][백준 2941] 크로아티아 알파벳[SILVER-5] [Solved by Kotlin]
PS/BOJ 2023. 4. 20. 21:34

문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 및 출력 입력: 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 ..

[BOJ-2824][백준 2824] 최대공약수[SILVER-1] [Solved by Kotlin]
PS/BOJ 2023. 4. 19. 22:44

문제 상근이는 학생들에게 두 양의 정수 A와 B의 최대공약수를 계산하는 문제를 내주었다. 그런데, 상근이는 학생들을 골탕먹이기 위해 매우 큰 A와 B를 주었다. 상근이는 N개의 수와 M개의 수를 주었고, N개의 수를 모두 곱하면 A, M개의 수를 모두 곱하면 B가 된다. 이 수가 주어졌을 때, 최대공약수를 구하는 프로그램을 작성하시오. 입력 및 출력 입력: 첫째 줄에 N(1 ≤ N ≤ 1000)이 주어진다. 둘째 줄에는 N개의 양의 정수가 공백으로 구분되어 주어진다. 이 수는 모두 1,000,000,000보다 작고, N개의 수를 곱하면 A가 된다. 셋째 줄에 M(1 ≤ M ≤ 1000)이 주어진다. 넷째 줄에는 M개의 양의 정수가 공백으로 구분되어 주어진다. 이 수는 모두 1,000,000,000보다 작..