목록문자열 (50)
기록방
👉 문제링크 5211번: 가단조와 다장조 첫째 줄에 음악이 주어진다. 음악은 {"A", "B", "C", "D", "E", "F", "G", "|"}로 이루어져 있으며, 길이는 5보다 크거나 같고, 100을 넘지 않는다. |가 연속해서 등장하거나, 문자열의 양쪽 끝에 나오는 경우 www.acmicpc.net 🔸 문제 분석 🔸 주어진 악보가 가단조인지 다장조인지 출력한다. 악보를 '|' 기준으로 나누어서 마디의 첫 글자로 어떤 음조의 중심음이 많이 나왔는지로 구분한다. 중심음의 개수가 같으면 마지막 음으로 구분한다. 🔸 코드 🔸 gadan = ['A','D','E'] dajang = ['C','F','G'] music = input().split("|") ga = 0 da = 0 for m in music..
👉 문제링크 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 좌석 정보가 주어지면 컵 놓을 수 있는 사람의 최대값을 출력한다. 일반석과 커플석을 구분해 계산한다. 일반석은 왼쪽 컵홀더가 비었으면 무조건 왼쪽, 아니면 오른쪽에 놓는다. 따라서 무조건 컵을 배치할 수 있다. 커플석은 왼쪽과 오른쪽 구분이 필요하다. 커플석의 왼쪽 좌석은 왼쪽 컵홀더에 컵이 놓였는지 확인이 필요하다. 🔸 코드 🔸 n = int(input()) arr = list(input()) answer = 0 nextL = False left = True # 왼쪽 컵홀더 사용이 되는가 for i in arr[:-1]: if ..
👉 문제링크 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 🔸 문제 분석 🔸 입력된 문자열 S에서 P 길이의 부분 문자열을 만들었을때, 입력된 DNA 문자열 최소 개수를 충족하는 경우의 수를 출력한다. 슬라이딩 윈도우 알고리즘을 이용해서 P길이의 부분 문자열을 문자열 S의 시작점부터 오른쪽으로 밀어간다. 윈도우에서 벗어나는 인덱스는 현재 상태에서 빼기 윈도우에 새로 들어오는 인덱스는 현재 상테에 더하기 조건에 충족 하는지 확인해서 카운트 🔸 코드 🔸 import java.io.Buffe..
👉 문제링크 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 🔸 문제 분석 🔸 문자열 A와 B가 주어지고, A를 최대한 B에 비슷하게 앞 뒤로 문자를 추가한다. 문자가 다른 인덱스의 수를 출력한다. A는 B보다 길이가 작거나 같다. 문자열 B에서 문자열 A를 겹쳤을때 가장 많이 겹치는 부분을 찾는다. 문자열 A의 길이에서 겹친 부분의 수를 뺀 값이 가장 클 때를 찾아 출력한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io..