문자 개수 세기
·
Coding Test
문제 설명알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요. class Solution { public int[] solution(String my_string) { int[] answer = new int[52]; for(int i = 0; i = 'A' && c= 'a' && c  1. 길이 52인 정수 배열 answer ..
StringBuilder
·
Coding Test
StringBuilderJava에서 문자열을 효율적으로 조작할 수 있도록 도와주는 클래스. String 객체는 불변의 객체이지만, StringBuilder 객체는 변경이 가능하여 문자열의 추가, 수정, 삭제 등의 작업을 더 빠르게 수행할 수 있다.-메서드append, insert, delete, reverse 등의 메서드를 제공하여 문자열을 쉽게 조작할 수 있음. 예시)class Solution { public String solution(String[] my_strings, int[][] parts) { StringBuilder result = new StringBuilder(); for (int i = 0; i
Pythond 백준 알고리즘 1712 : 손익분기점
·
Coding Test
https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net # 1712 손익분기점 a, b, c = map(int,input().split()) if b >= c: print(-1) else: print(int(a//(c-b)+1)) 가변 비용이 노트북 가격보다 크면 손익분기점이 존재하지 않는다. 따라서 b가 c보다 크거나 같으면 -1을 출력한다. 그렇지 않으면 손익분기점이 발생하는 때의 판매량 +1을 출려해준다. 식은 a / (c - b)이다.
Python 백준 알고리즘 9252 : LCS 2
·
Coding Test
https://www.acmicpc.net/problem/9252 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net # 9252 LCS 2 a = input() b = input() dp = [[""]*(len(b)+1) for _ in range(len(a)+1)] for i in range(1, len(a)+1): for j in range(1, len(b)+1): if a[i-1] == b[j-1]: dp[i][j] = dp[i-1][j-1]+a[i-1] e..
Python 백준 알고리즘 2193 : 이친수
·
Coding Test
https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net # 2193 이친수 n = int(input()) arr = [0, 1, 1] for i in range(3, 91): arr.append((arr[i-1]+arr[i-2])) print(arr[n]) 규칙을 찾는 것 말고는 어렵지 않다.
Python 백준 알고리즘 1256 : 사전
·
Coding Test
https://www.acmicpc.net/problem/1256 1256번: 사전 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 김진영 조교는 동호와 규완이에게 특별 과제를 주었다. 특별 과제는 특별한 문자열로 이루어 진 사전을 만드는 것이다. 사전에 수록되 www.acmicpc.net # 1256 사전 n, m, k = map(int,input().split()) result = "" arr = [[1]*(m+1) for _ in range(n+1)] for i in range(1, n+1): for j in range(1, m+1): arr[i][j] = arr[i-1][j] + arr[i][j-1] if arr[n][m] < k: print(-1) else: while True: if..
Python 백준 알고리즘 1316 : 그룹 단어 체커
·
Coding Test
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net # 1316 그룹 단어 체커 n = int(input()) group_word = 0 for i in range(n): word = input() error = 0 for i in range(len(word)-1): if word[i] != word[i+1]: new_word = word[i+1:] if new_word.count(word[i]) > 0: error..
Python 백준 알고리즘 2941 : 크로아티아 알파벳
·
Coding Test
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net # 2941 크로아티아 알파벳 word = input() croatia = ['c=','c-','dz=','d-','lj','nj','s=','z='] for i in croatia: word = word.replace(i,'@') print(len(word)) 크로아티아 알파벳이 변경된 상태를 변수 croatia에 저장한다. 저장 돼있는 값들을 하나씩 꺼내서..
Python 백준 알고리즘 5622 : 다이얼
·
Coding Test
https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net # 5622 다이얼 word = input() dial = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ'] time = 0 for i in range(len(word)): for j in dial: if word[i] in j: time += dial.index(j)+3 print(time) 다이얼 번호와 상응하는 문자들을 변수 dial에 저장하고, 총 걸리는 시간을 저장할 변수 time을 초기화시킨다. 변수 dial에 저장돼 있는 값들..
Python 백준 알고리즘 1197 : 최소 스패닝 트리
·
Coding Test
https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net # 1197 최소 스패닝 트리 v, e = map(int, input().split()) parent = [0] * (v+1) edge = [] sum = 0 for i in range(1, v+1): parent[i] = i def find(x): if parent[x] != x: parent[x] = find(parent[x]) return par..