분류 전체보기 342

[백준] 4344번

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int C = sc.nextInt(); // 테스트 케이스 개수 int[] arr; for (int i = 0; i < C; i++) { int sum = 0; // 학생 점수 합계 double average = 0; // 평균 점수 int count = 0; // 평균 넘는 학생 수 double percent = 0; // 평균 넘는 학생들의 비율 int N = sc.nextInt(); // 학생 수 arr = new int[N]; for (int j = 0; j < N; j++) {..

[백준] 8958번

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); String[] arr = new String[N]; for (int i = 0; i < N; i++) { arr[i] = sc.next(); // 문자열 입력받기 int score = 0; // 점수 int cnt = 1; // 연속 추가 점수 for (int j = 0; j < arr[i].length(); j++) { if (arr[i].charAt(j) == 'O') { score += cnt; cnt++; // 연속 추가 점수 쌓기 } e..

[자료구조] 힙 트리(Heap Tree)

heap tree는 배열의 원소를 정렬하기 위한 자료구조이다. 일반적인 트리 구조와는 달리 우선순위에 따라서 빠르게 자료를 검색할 수 있다. 특징 heap tree는 최대 힙과 최소 힙으로 구현한다. 최대 힙은 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리이다. 반대로 최소 힙은 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리이다. 완전 이진 트리로 구성되어 있다. 이는 삽입 / 삭제 시 성능을 위해서이다. 중복된 값을 저장할 수 있다. 단순히 최댓값 / 최솟값을 찾아내기 위한 구조이기 때문이다. 구현 heap tree는 완전 이진 트리로 구현되어 배열로 표현할 수 있다. 루트 노드부터 높이 순서대로 배열에 모두 정렬이 가능하다. 일반적으로 배열의 0번..

개발 일지/CS 2023.01.21

[자료구조] 해시 테이블(Hash Table)

해시 테이블(Hash Table)이란, 검색하고자 하는 키(key) 값을 입력받아서 해시 함수(hash function)를 통해 얻은 해시를 배열의 색인(index)으로 환산해서 데이터(value)에 접근하는 자료구조이다. 즉, 필요한 데이터의 키를 해시함수를 사용해 별도의 해시로 바꾸고 해당하는 데이터를 함께 저장하는 자료구조이다. 해시 테이블은 주소록(Address Book), 블록체인(Blockchain), 크롬, V8 등에 사용된다. 구조 해시 테이블은 키, 해시 함수, 해시, 데이터로 이루어져 있다. 키(key) : 고유한 값으로 해시 함수의 입력값이 된다. 해시 함수(hash function) : 키를 해시로 바꿔주는 역할을 한다. 해시(hash) : 해시 함수에 의해 얻어지는 값이다. 데이터..

개발 일지/CS 2023.01.21