Bronze 1

코딩테스트 & 문제 풀이

[Java]백준_23881 : 알고리즘 수업 - 선택 정렬 1

https://www.acmicpc.net/problem/23881 문제 분석선택 정렬을 직접 구현하는 문제이다. 선택 정렬의 가장 기본적인 원리는 가장 작은 데이터를 선택해서 앞으로 보내는 알고리즘이다.한 바퀴 돌면서 가장 작은 데이터를 찾아서 맨 앞 데이터와 교환하고, 그 다음 작은 데이터를 찾아서 그 다음 위치와 교환하는 식으로 동작한다.배열 [5, 3, 8, 4, 2]로 동작 원리를 살펴보겠다. 전체 [5, 3, 8, 4, 2] 중 가장 작은 값: 2 -> 첫 번째 값 5와 교환=> 결과 : [2, 3, 8, 4, 5] 남은 부분 [3, 8, 4, 5]에서 가장 작은 값: 3 -> 그대로 유지=> 결과 : [2, 3, 8, 4, 5] 남은 부분 [8, 4, 5]에서 가장 작은 값: 4 ->..

코딩테스트 & 문제 풀이

[Java]백준_23968 : 알고리즘 수업 - 버블 정렬 1

https://www.acmicpc.net/problem/23968    문제 분석버블 정렬로 k번째 교환되는 두 수를 구하는 문제이다.먼저, 버블 정렬의 개념을 알아야 한다. 버블 정렬의 가장 기본적인 원리는 인접한 두 개의 수를 비교하여 큰 수를 오른쪽으로 밀어내며 정렬하는 알고리즘이다. 두 개의 수를 비교하여 만약 앞에 있는 숫자가 더 크다면, 서로 교환을 시키고 이후 다시 옆칸과 비교하는 방법을 반복한다.배열 [5, 3, 8, 4, 2]로 동작 원리를 살펴보겠다. 5와 3 비교 -> 교환 -> [3, 5, 8, 4, 2]5와 8 비교 -> 그대로 -> [3, 5, 8, 4, 2]8과 4 비교 -> 교환 -> [3, 5, 4, 8, 2]8과 2 비교 -> 교환 -> [3, 5, 4, 2, 8]=> ..

코딩테스트 & 문제 풀이

[Java]백준_10798 : 세로읽기

https://www.acmicpc.net/problem/10798   문제 분석2차원 배열에 입력 받은 값을 넣어놓고 [0~4][0], [0~4][1] ...을 반복해서 출력하면 세로로 읽을 수 있다.   소스 코드 (⭕)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilde..

코딩테스트 & 문제 풀이

[C]백준_24389 : 2의 보수

2023년 3월 5일에 작성됨 https://www.acmicpc.net/problem/24389 24389번: 2의 보수 컴퓨터는 뺄셈을 처리할 때 내부적으로 2의 보수를 사용한다. 어떤 수의 2의 보수는 해당하는 숫자의 모든 비트를 반전시킨 뒤, 1을 더해 만들 수 있다. 이때, 32비트 기준으로 처음 표현했던 수와 www.acmicpc.net 문제 분석 n을 입력받고, n과 n의 2의 보수의 이진수를 배열에 넣고 이를 바교하여 서로 다른 비트 수를 구해본다. 소스 코드 (⭕) #include int main() { int n, cnt = 0, diff_bit = 0; int binary[33] = { 0 };// 정수 n의 2진수 담을 배열 int result[33] = { 0 };// n의 보수 ..

코딩테스트 & 문제 풀이

[C]백준_3447 : 버그왕

2023년 3월 4일에 작성됨 https://www.acmicpc.net/problem/3447 3447번: 버그왕 입력은 여러 줄의 소스 코드로 이루어져 있다. 이 소스 코드는 백준이가 작성한 버그를 찾는 프로그램으로 이미 처리가 되어있다. 각 줄은 100글자 이내이고, 입력은 파일이 끝날 때 끝난다. 줄의 www.acmicpc.net 문제 분석 예제 입력에서 "BUG"라는 글자를 찾아서 완전히 없앤 결과를 출력해준다. 소스 코드 (⭕) #include #include int main() { char str[101]; char bug[] = "BUG"; // 입력받을 문자열이 없을 때까지 반복 while (fgets(str, 101, stdin) != NULL) { // BUG 문자열이 없을 때까지 반..

코딩테스트 & 문제 풀이

[Python]백준_2999 : 비밀 이메일

2023년 1월 3일에 작성됨 https://www.acmicpc.net/problem/2999 2999번: 비밀 이메일 정인이는 원래 "bombonisuuladici"를 보내려고 했다. 이 메시지는 16글자이므로, 정인이는 1*16, 2*8, 4*4 행렬을 선택할 수 있다. R이 가장 큰 것은 4*4이므로, 4*4를 선택한다. 정인이가 만든 행렬은 다음과 www.acmicpc.net 소스 코드 (⭕) str = input() # 문자열 str 입력 len = len(str) # 입력받은 문자열 길이 len x, y = 0, 0 # 행 R개와 열 C개를 구하는 이중 반복문 (R이 커야 됨) for r in range(1, int(len/2)+1): for c in range(r, len+1): if r*..

코딩테스트 & 문제 풀이

[Python]백준_5211 : 가단조와 다장조

2022년 12월 30일에 작성됨 https://www.acmicpc.net/problem/5211 5211번: 가단조와 다장조 첫째 줄에 음악이 주어진다. 음악은 {"A", "B", "C", "D", "E", "F", "G", "|"}로 이루어져 있으며, 길이는 5보다 크거나 같고, 100을 넘지 않는다. |가 연속해서 등장하거나, 문자열의 양쪽 끝에 나오는 경우 www.acmicpc.net 문제 분석 각 마디를 |을 기준으로 나눠서 각 마디의 첫 음으로 나오는 중심음이 다장조인지 가단조인지 판별해주고 그 개수를 세어서 더 많은 음계가 그 음악의 음계가 된다. 만약, 개수가 같은 경우에는 마지막 마디의 맨 끝의 음으로 음계를 정한다. 소스 코드 (⭕) da_long = ["C", "F", "G"] ga..

코딩테스트 & 문제 풀이

[Python]백준_25643 : 문자열 탑 쌓기

2022년 12월 23일에 작성됨 https://www.acmicpc.net/problem/25643 25643번: 문자열 탑 쌓기 인경이는 $N$개의 문자열을 쌓아서 문자열 탑을 완성하려고 한다. 탑을 완성하기 위해서는 모든 문자열을 한 층에 하나씩 아래에서부터 순서대로 쌓아 올려야 한다. 인경이는 문자열 탑의 꼭대 www.acmicpc.net 소스 코드 (⭕) n, m = map(int, input().split()) str = [] for _ in range(n): str.append(input()) for i in range(n-1): str1 = str[i] str2 = str[i+1] check = False for j in range(1, m+1): if str1[m-j:] == str2[:..

코딩테스트 & 문제 풀이

[Python]백준_14696 : 딱지놀이

2022년 12월 10일에 작성됨 https://www.acmicpc.net/problem/14696 14696번: 딱지놀이 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 딱지놀이의 총 라운드 수를 나타내는 자연수 N이 주어진다. N 은 1 이상 1,000 이하이다. 다음 줄에는 라운드 1에서 어린이 A가 내는 딱지에 나 www.acmicpc.net 문제 분석 4, 3, 2, 1이 각각 몇 번 입력되었는지 세어주고, 세어준 값을 순서대로 비교하여 결과에 따라 A, B, D 중 하나로 출력해준다. 소스 코드 (⭕) N = int(input()) hi = [] # 총 라운드 수 N만큼 반복 for i in range(N): # A와 B를 map함수를 써서 int형, 공백 기준, 맨 앞 숫자 재외하고 ..

코딩테스트 & 문제 풀이

[Python]백준_2810 : 컵홀더

2022년 11월 17일에 작성됨 https://www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 문제 분석 1. 좌석의 배치에서 커플석의 개수에 따라 컵홀더의 개수가 달라지는 점을 이용하여 규칙을 세운다. 2. 컵홀더에 놓을 수 있는 최대 사람의 수를 출력해야 되니까 3. 컵홀더의 개수가 널널하다면 사람의 수를 출력하고, 컵홀더의 개수가 사람 수보다 적다면 컵홀더의 개수를 출력해준다. 소스 코드 (⭕) n = int(input()) jari = input() su = jari.count("LL") cup = n+1-su if su == -1 or n < c..

Hicecream
'Bronze 1' 태그의 글 목록