목록분류 전체보기 (95)
in.add()
비트와 바이트란? 0과 1의 집합을 디지털 데이터라고 한다. 이 0과 1의 정보를 나타내는 최소 단위를 비트라고 한다. 0과 1을 표현하는 1비트 여덟 개를 모아 표시한 것이 바이트이다. 즉, 8비트는 1바이트다. 컴퓨터는 기본적으로 이러한 바이트 단위로 데이터를 읽고 쓰는 작업을 한다. 그래서 디지털 데이터를 만들 때는 8비트를 1바이트로 다루는 것이 좋다. 문자 코드란? 숫자와 문자의 대응표이다. ASCII 코드는 알파벨, 기호, 수자 등을 다룰 수 있는 기본적인 문자 코드이다. 예를 들어, 문자 'A'는 ASCII 코드 65에 대응된다. 이런 방식으로 0과 1밖에 이해하지 못하는 컴퓨터에 문자를 입력할 수 있다. 문자도 패킷으로 나누어서 보내면 받은 쪽에서 패킷을 원래 값으로 되돌린다.
컴퓨터 네트워크란? 두대 이상의 컴퓨터를 연결한 것으로 컴퓨터 간에 필요한 데이터(정보)를 서로 주고받을 수 있다. 전 세계의 큰 네트워크부터 작은 네트워크까지를 연결한 거대한 네트워크를 인터넷이라고 한다. 패킷이란? 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해 전송되는 데이터의 작은 조각을 말한다. 큰 데이터가 있더라도 작게 나누어서 보내는 것이 규칙이다. 큰 데이터를 그대로 보내면 그 데이터가 네트워크의 대역폭을 너무 많이 차지(점유)해서 다른 패킷의 흐름을 막을 위험이 있기 때문이다. 대역폭이란 일반적으로 네트워크에서 이용 가능한 최대 전송 속도로 정보를 전송할 수 있는 단위 시간당 전송량을 말한다. 패킷이 전송될 때 네트워크의 지연 또는 패킷 누락 등의 이유로 전송한 순서대로 목적지에 도착하..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 문제 해결 방법 해시 맵과 정렬을 사용했다. import java.util.*; class Solution { ArrayList playlist; ArrayList bestalbum; HashMap genremap; HashMap albummap; class Song implements Comparable{ int id; String genre;..
문제 링크 : https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제 해결 방법 bfs로 구현했다. 시뮬레이션 문제는 한 번에 통과하는 법이 없는 거 같다.. 더 꼼꼼히 확인해라! import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int N, R, L; static int[][] map; sta..
문제 링크 : https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 문제 해결 방법 오랜만에 크루스칼을 구현해봤다. import java.util.PriorityQueue; import java.util.Scanner; public class Main { static class Node implements Comparable { int from; int to; int cost; public Node(int fro..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차_퍼즐 조각 채우기 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 문제 해결 방법 새로운 newBoard와 newTable을 만든다. 도형이 들어갈 칸은 그 크기의 수로 초기화..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 문제 해결 방법 priority queue를 사용하여 구현했다. import java.util.*; class Solution { public int[] solution(String[] operations) { int[] answer = new int[2]; PriorityQueue pq = new PriorityQueue(); for(String s : operations) { String[] op = s.split(" "); if(op[0].equals("I")) { pq.add(Integer.parseInt(op[1])..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 해결 방법 dfs로 구현했다. class Solution { public int solution(int n, int[][] computers) { boolean[] chk = new boolean[n]; int answer = 0; for(int i = 0; i < n; i++) { if(!chk[i]) { dfs(computers, c..