
시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 3 초 256 MB 29504 7184 4618 24.793% 문제 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다. 학생들이(s1, s2, ..., sr)이라 할 때, r=1이고 s1이 s1을 선택하는 경우나, s1이 s2를 선택하고, s2가 s3를 선택하고,..., sr-1이 sr을 선택하고, sr이 s1..

LinkedList(Singly LinkedList)란 LinkedList는 Collection FrameWork란 여러 개의 데이터를 쉽고 효율적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스 중 하나이다. 컬랙션 프레임워크 중 List 인터페이스에 해당된다. ArrayList는 배열을 토대로 만들어진 List로 데이터를 추가하거나 삭제할 때 크기를 변경할 수 없어서 새롭게 생성해서 copy된 배열을 사용하는 등 "고정된" 배열로 인한 단점이 있었다. 하지만 LinkedList는 이 단점을 해결하기 위해 각 노드가 데이터와 포인터를 가지고 줄줄이 연결되어있는 구조이다. (노드가 서로서로 링크되어있다.) 처음부터 말로 설명을 하면 좀 알아듣기 힘들고 그림으로 먼저 보자. 처음 Header는 시작을 ..

ArrayList란 ArrayList는 Collection Framework(컬랙션 프레임워크)란 여러 개의 데이터를 쉽고 효율적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스 중 하나이다. 컬랙션 프레임 워크 중 List 인터페이스에 해당된다. List 인터페이스만 알아보면 List 인터페이스는 순서가 있는 데이터의 집합이며 데이터의 중복을 허용하는 인터페이스다. 쉽게말해서 확장된 배열이라고 보면된다. 한번 생성되었을 때 크기가 변하지 않는 배열과는 다르게 객체가 추가되어 capacity가 초과되면 capacity가 늘어난다. 위 ArrayList가 설령 크기가 8로 지정되어 있더라고 9로 배열의 크기를 늘린 다음에 저장할 수 있다. 가변적인 배열이라고 생각하면 머릿속에 외우기 더 쉽다. 구현 j..
선택문 조건에 따라 명령을 처리하는 문법 if~else문 switch~case문 자바에서는 특정 데이터의 값에 따라 수행할 구문을 선택하는 문법을 제공한다. 연속된 값으로 데이터의 범위를 확인하는 if문, 그리고 불연속 값들을 case별로 나누어서 확인하는 switch문이 있다. if~else문 package Week4; public class Exam1 { public static void main(String[] args) { int month = 4; if(month==12 || month==1 || month==2) System.out.println("winter"); else if(month==3 || month==4 || month==5) System.out.println("spring"); ..
산술 연산자 연산자라고 특이한 무언가가 있는 것은 아니고 흔히 사칙연산에서 사용하는 덧셈, 뺄셈, 곱셈, 나눗셈과 더불어 나머지 연산을 포함한 연산을 말한다. 나눗셈 연산의 경우 소숫점은 무조건 버림이 되니 유의해서 사용해야한다. package Week3; public class Exam1 { public static void main(String[] args) { int a = 12; int b = 5; System.out.println("a + b = " + (a+b)); System.out.println("a - b = " + (a-b)); System.out.println("a * b = " + (a*b)); System.out.println("a / b = " + (a/b)); System.ou..

프리미티브 타입 종류와 값의 범위 그리고 기본값 데이터 타입을 다루기 앞서 과연 데이터 타입이 뭐고 왜 굳이 데이터 타입을 나눠서 저장하는지에 대한 의문점을 가졌다. 컴퓨터 메모리에는 비트의 패턴이 저장되며 이것이 무엇을 의미할지는 어떻게 사용되는가에 따라 달려있다. 컴퓨터에 사용되는 메모리는 "유한"하다. 만약 사용할 변수의 크기가 8bit 밖에 안되는데 64bit의 데이터 타입을 사용한다면 56 bit의 데이터 낭비가 발생한다. 물론 bit 타입의 크기가 그렇게 크지는 않지만 큰 서비스를 운영할 때 쌓이고 쌓이다보면 많은 메모리를 차지하게 되고 이는 성능 저하의 원인이 된다. 그래서 내가 사용하는 변수의 범위와 타입에 맞게 사용하는 것이 중요하다. 데이터 타입에는 두가지 타입이 있다. Primitiv..

JVM이란 무엇인가? Write Once, Run Anywhere 자바의 장점을 얘기하면 가장 먼저 나오는 말인 "운영체제에 독립적이다"를 대표해주는 가상 머신이다. 기존 언어들이 운영체제에 맞게 따로 개발을 해야하는 것에 비해 자바는 운영체제에 독립적으로 움직이며 이를 JVM(Java Virtual Machine, 자바 가상 머신)이 도와준다. 어떤 운영체제(Window, Mac, Linux, ...)에서 자바를 실행하건 JVM이 그 사이에 끼여서 작동한다고 보면 된다. (마치 내가 어떤 나라에 가건 사용할 수 있게 해주는 돼지코 같은 느낌이다.) 직역하면 "자바를 실행하기 위한 가상 컴퓨터" 이며 이때, 가상 기계(Virtual Machine)는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미이다. ..
- Total
- Today
- Yesterday