목록알고리즘 (5)
nickjoIT
기본적인 해쉬 테이블에 대한 이해 해쉬 테이블은 Key에 Value를 저장하는 데이타 구조로, value := get(key)에 대한 기능이 매우매우 빠르게 작동한다. 개발자라면 자주 쓰는 데이타 구조지만, 실제로 어떻게 작동하는지에 대해서 정확하게 알고 있지는 모르는 경우가 많다. 이 글에서는 해쉬 테이블에 대한 기본적인 구조와, 구현 방식에 대해서 설명 하도록 한다. 해쉬 테이블의 기본적인 개념은 다음과 같다.이름을 키로, 전화 번호를 저장하는 해쉬 테이블 구조를 만든다고 하자. 전체 데이타 양을 16명이라고 가정하면 John Smith의 데이타를 저장할때, index = hash_function(“John Smith”) % 16 를 통해서 index 값을 구해내고, array[16] = “John ..
최초의 컴퓨터는 10진수를 사용했다.나는 처음부터 2진수를 사용한 줄 알았는데 최초의 컴퓨터인 에니악은 10진수를 사용했다고 한다. 아마도 우리의 손가락이 10개이고 평상시에 연산을 할 때도 10진수를 주로 사용하기 때문에 익숙해서 10진수를 사용했던 게 아닐까? 그럼 왜 컴퓨터는 2진수를 사용하게 됐을까?전기회로는 전압이 불안정해서 전압을 10단계로 나누어 처리하는데 한계가 있다. 따라서 에니악과 에드삭은 10진수를 이용했던 데 반해 그 후속 시리즈인 에드박은 전압을 2단계로 나누어 처리하는 2진수를 사용하였다. 즉, 전기가 흐르면 1, 전기가 흐르지 않으면 0만으로 동작하게 설계하게 된 것이다. 결론을 내리자면 전기회로는 전압이 불안정해서 전압을 두 단계로 나누어 처리하는 게 안정적이다 보니 2진수를..
일, 십, 백, 천, … 우리가 사용하는 수는 10이 될 때마다 묶어서 한 자리씩 올린다. 그러나 5가 될 때마다 한 자리 올리는 수를 쓰던 곳도 있고 20이 될 때마다 한 자리 올리는 수를 쓰던 곳도 있다. 또 숫자의 모양도 각양각색이었다.지금 우리가 사용하는 인도-아라비아 숫자가 수 세계를 평정하기까지 어떤 일이 있었을까? 돌멩이에서 진법으로 아주 오래 전 사람들은 몇 명이 같이 살고 있는지, 가축을 몇 마리 기르고 있는지 세기 위해 손가락을 이용했다. 그러다 손가락이 부족할 정도로 개수가 많아지면 작은 돌멩이나 조개 껍데기를 사용했다. 만약 양이 13마리 있다면 작은 돌멩이 13개를 우리 입구에 두었다가 양과 하나씩 맞춰 보았다. 그런데 어느 날 모아 놓은 나무 열매가 42개가 되어 이를 세던 작은..
10진법으로 수를 나타낸 것이 10진수이고, 2진법으로 수를 나타낸 것이 2진수 입니다. 우리가 일상생활에서 사용하는 수는 10진수 입니다. 10진수를 2진수로 변환하는 법을 설명하고자 합니다. 먼저 10진법으로 수를 나타낸 10진수에 대하여 알아보겠습니다. 진법이란 사용할 수 있는 숫자의 개수와 자리값을 정의해 주는 수 체계 입니다.10진법에서 사용할 수 있는 숫자는 0,1, 2, 3, 4, 5, 6, 7, 8, 9 이렇게 10개 입니다. 10진법에서 각 자리값은 10의 제곱으로 나타냅니다. 자리는 맨 오른쪽 부터 셈니다. 예를 들어 10진수 7,536에서 숫자는 6은 첫째 자리, 숫자 3은 둘째 자리, 숫자 5는 세째자리, 숫자 7은 네째 자리 입니다. 이제 10진수 7,536의 각 자리값을 나타내면..
입력첫 번째 줄에는 학교의 수를 나타내는 정수 N (1 ≤ N ≤ 100)이 주어진다. 다음 N 개의 줄에 각 학교의 학생 수와 배정된 사과 개수를 나타내는 두 개의 정수가 주어진다. 학생 수와 사과 개수는 모두 1이상 100이하이다. 출력남은 사과의 총 개수를 나타내는 정수를 출력한다.# 출제 사이트https://www.acmicpc.net/problem/10833 public static void main(String[] args) { Scanner s = new Scanner(System.in); HashMap s3 = new HashMap(); int s1,s2; int totalSc = Integer.parseInt(s.next()); int restApple = 0; while((totalSc..