본문 바로가기

컴퓨터 공학99

[백준] JAVA 자바 : 바이러스 (2606번) 가장 전형적인 너비 우선 탐색의 문제라고 볼 수 있다.연결된 그래프의 정점들을 탐색한다면 정점을 몇 번 순회하게 되는지 구하면 된다.사실 깊이 우선 탐색으로 풀어도 답은 똑같이 나올 것 같은데, 문제가 요구하는 대로 푸려면 너비 우선 탐색이 더 적합한 것 같다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Virus { static int N; // 컴퓨터의 수 static int M; // 간선의 수 .. 2024. 7. 11.
[백준] JAVA 자바 : 팰린드롬 만들기 (1254번) 앞에서 읽으나 뒤로 읽으나 같아지는 팰린드롬을 가장 짧게 만드는 문제이다. 근데 사실 푼 지 거의 2주가 지나서 어떻게 풀었는지 자세하게 기억이 나진 않는다(...)분명 보고 쉽게 파악할 수 있는 코드를 짜려고 노력했는데...ㅋㅋㅋ 대충 i~j번째 글자를 잘라내서, 뒤집어도 똑같은 단어 중 가장 길이가 짧다면 그 때 남은 단어를 붙인 길이를 구하는 방식으로 짰던 것 같다.자세한 건 나도 좀 더 봐야 알 수 있을 듯...import java.util.*;import java.io.*;public class MakePalindrome { public static void main(String[] args) throws IOException { BufferedReader br = new Buff.. 2024. 7. 9.
[백준] JAVA 자바 : 일곱 난쟁이 (2309번) 주어진 아홉 마리의 난쟁이의 키를 보고, 일곱 마리의 난쟁이의 키를 구하는 것이다. 이 문제는 어렵지 않게 구할 수 있다. 나는 아래와 같은 로직으로 해결했다.1. 아홉 마리의 난쟁이의 키를 모두 더한 후, 100과 빼서 그 차이(diff)를 구한다.2. 아홉 마리의 난쟁이의 키를 중첩 반복문으로 돌면서, 둘의 키의 합이 diff가 되는 두 i, j를 구한다.3. i번째와 j번째 난쟁이의 키를 0으로 만든 후 배열을 정렬하고 출력한다. 이 정도만 보면 다들 쉽게 해결할 수 있을 거라고 생각한다.i와 j를 구했다면 diff를 9999로 바꿔주어야 하는데, 그 과정이 없다면 외부 for문을 계속 돌아서 똑같은 i와 j 밸류가 있다면 그것까지 0으로 바꾸기 때문... import java.util.*;impo.. 2024. 6. 21.
[백준] JAVA 자바 : 영화감독 숌 (1436번) 문제는 대강 이렇다.따로 쓰기 귀찮으니 스샷을 참조해주십쇼. 사실 나는 문제를 이해하는 데만 한 10분은 걸린 것 같다...끝내 종말을 나타내는 수는 666이 포함되는 수라고 이해할 수 있었다! 그러면... 우리는 아래 사항들을 고려해 보아야 한다.1. 숫자의 끝 부분에 6이 들어가지 않는 경우이 경우에는 그냥 현재 수의 마지막에 666을 붙여주기만 하면 된다. 2. 숫자의 끝 부분에 6이 하나 들어가는 경우이 경우에는 현재 수의 마지막에 660~669까지 붙일 수 있다.왜냐? 현재 수가 16이라면 16과 66x를 붙여서 1666x가 되어 종말을 나타내는 수가 되니까! 3. 숫자의 끝 부분에 6이 두 개 들어가는 경우이 경우에는 현재 수의 마지막에 600~699까지 붙일 수 있다. 4. 숫자에 666이 .. 2024. 6. 21.
[논리 회로] 8장. 플립플롭 본 내용은 2024년 1학기 '컴퓨터논리개론' 수업을 들으며 노션에다가 정리한 글을 옮겨온 포스트입니다.제 공부를 위해 작성한 거라서 제가 알아보기 편하게  정리했습니다. 여러분들도 자유자재로 열람 가능하지만 간혹 이해하기 힘든 부분이 있을 수도 있다는 점 양해 부탁드립니다!1) 기본적인 플립플롭조합논리회로에서 출력은 현재 입력의 조합에 의해서만 결정된다. 그러나 순서논리회로에서 출력은, 현재 입력의 조합과 입력이 인가되는 시점의 회로 상태(High/Low)에도 영향을 받아 출력이 결정된다.→ 회로의 상태를 기억하는 기억 소자(래치, 플립플롭)가 필요!래치: 클록 신호에 관계없이 모든 입력을 계속 감시하다가 클록에 관계없이 언제든지 출력을 변화플립플롭: 클록 신호에 따라 정해진 시점에서의 입력을 출력에 .. 2024. 6. 7.
[논리 회로] 7장. 조합논리회로 본 내용은 2024년 1학기 '컴퓨터논리개론' 수업을 들으며 노션에다가 정리한 글을 옮겨온 포스트입니다.제 공부를 위해 작성한 거라서 제가 알아보기 편하게  정리했습니다. 여러분들도 자유자재로 열람 가능하지만 간혹 이해하기 힘든 부분이 있을 수도 있다는 점 양해 부탁드립니다!조합논리회로는 논리곱(AND), 논리합(OR), 논리 부정(NOT)의 세 가지 기본 논리회로의 조합으로 만들어지며, 입력 신호, 논리 게이트 및 출력 신호로 구성된다.논리 게이트는 입력 신호를 받아서 출력 신호를 생성함!1) 가산기(1) 반가산기한 자리 2진수 2개를 입력하여 합(S)과 캐리(C)를 계산하는 덧셈 회로.캐리(C): 입력 A와 B가 모두 1인 경우에만 1 합(S): 입력 A와 B 둘 중 하나만 1일 때 1 (2) 전가산.. 2024. 6. 7.
반응형