Computer Sciences(236)
-
[Baekjoon] 1389번: 케빈 베이컨의 6단계 법칙
https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 문제 설명 케빈 베이컨의 수가 가장 작은 사람을 구하면 된다. 케빈 베이컨은 다른 사람을 알기 위해 걸치는 다리 수를 말한다. 예를 들면 다음과 같다. A, B, C, D, E가 있고 A와 C, A와 D, B와 C, C와 D, D와 E가 친구인 경우를 생각해보자. 발그림 죄송합니다 A의 케빈 베이컨을 구하면 다음과 같다. B를 알기 위해 C를 거쳐야..
2023.03.21 -
[Baekjoon] 2108번: 통계학
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 문제 설명 정수 N개가 주어진다. 이 숫자들에 대해 통계값을 출력해야 한다(단, N은 홀수이며 N의 절댓값은 절대 4000을 넘지 않는다). 산술 평균: N개의 수들의 합을 N으로 나눈 값 중앙값: N개의 수들을 오름차순으로 정렬했을 경우 그 중앙에 위치하는 값 최빈값: N개의 수들 중 가장 많이 나타나는 값 범위: N개의 수들 중 최댓값과 최솟값의 차이 출력 형식은 다음과 같다. 첫째 줄에는 산술 평균을 출력..
2023.03.20 -
[Compiler] 2. 간단한 컴파일러의 구조
1. 컴파일러의 논리적 구조 1. 개요 문장이 어떤 요소로 구성되어 있는지 파악하기 위해 문장에 사용된 단어를 검사한다. I am a boy라는 문장으로 예를 들면 I, am, a, boy 라는 네 가지 단어가 사용된 것을 알 수 있으며 이를 알아내는 것을 어휘 분석이라고 한다. I, am, a, boy 가 각각 8품사인 명사, 대명사, 동사, 형용사, 부사, 전치사, 접속사, 감탄사 중 어디에 속하는지 확인하고 문장의 5대 요소인 주어, 동사, 목적어, 보어, 수식어 등으로 구분할 것이다. 그리고 주어+동사, 주어+동사+보어, 주어+동사+목적어 등 문장의 형식을 검사하여 이 문장이 주어+동사+보어로 구성되었다는 것을 알아낸다. 이렇게 문장의 형식을 알아내는 것을 구문 분석이라고 한다. 단어 대 단어의 ..
2023.03.18 -
[Compiler] 1. 컴파일러 개요
1. 컴파일러의 필요성 언어란? 의사전달을 하기 위한 도구 언어의 종류 자연언어 형식언어 프로그래밍 언어 컴파일러가 필요한 이유 인간은 문제를 해결하기 위해 컴퓨터를 사용하며 컴퓨터와 의사소통을 하기 위한 언어가 필요하다. 컴퓨터는 기계어를 사용하지만 인간이 기계어를 사용하여 문제를 표현하기란 무척 어렵기 때문에 인간은 사람 중심 언어인 고급 언어를 사용한다. 그러나 컴퓨터는 인간이 사용하는 고급 언어를 이해하지 못한다. 따라서 인간이 사용하는 고급 언어를 기계어로 변환해주는 번역기인 컴파일러가 필요하다. 2. 프로그래밍 언어 참조 호출과 값 호출 참조 호출 실제 매개변수의 주소를 대응되는 형식 매개변수로 넘겨주는 방법으로 C언어의 포인터 변수에 대한 매개변수 전달 방식에 사용 2개 이상의 변수가 메모리..
2023.03.18 -
[Baekjoon] 2309번: 일곱 난쟁이
https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 문제 설명 아홉 명의 난쟁이들 중 스파이 난쟁이 2명이 숨어있다. 진짜 일곱 난쟁이들의 키의 합은 100이다. 아홉 난쟁이들 중 진짜 일곱 난쟁이들만 찾아내 그 키를 출력한다. 풀이 방법 1. 7중 반복문 제일 단순무식한 방법이다. 반복문을 이렇게 극단적으로 많이 써본 것도 처음이다. import java.io.*; import java.util.Arrays; class Main { final static..
2023.03.18 -
[Baekjoon] 9935번: 문자열 폭발
https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 설명 먼저 문자열 한 줄이 주어진다. 그 다음 폭발 키워드 문자열이 주어진다. 만약 문자열에 폭발 키워드 문자열이 있으면 해당 문자열이 폭발하고 앞 뒤 문자열은 합쳐진다. 이때 폭발이 모두 끝난 후 남은 문자열을 출력하면 된다. 만약 남은 문자열이 없는 경우, 즉 모든 문자열이 폭발한 경우 FRULA를 출력한다. 스택이나 StringBuilder를 활용하면 효율적으로 해결할 수..
2023.03.17