본문 바로가기

프로그램언어

cos pro1급 샘플문제 구조 문제1 학생들의 학번과 등수가 주어질 때, 학번을 등수 순서대로 정렬하려 합니다(단, 등수가 같은 학생은 없다고 가정합니다). 이를 위해 다음과 같이 구조체를 정의했습니다. typedef struct Student{ int student_number; int rank; }Student; 또한, 다음과 같이 프로그램 구조를 작성했습니다. 1. 학생의 학번과 등수로 구성된 구조체 배열을 생성 및 초기화합니다. 2. 생성된 구조체 배열을 등수 기준으로 오름차순 정렬합니다. 3. 정렬된 구조체 배열에서 학번을 첫 번째 원소부터 순서대로 가져와 새로운 배열에 넣습니다. 4. 생성된 학번 배열을 return 합니다. 학생들의 학번이 들어있는 배열 student_numbers와 student_numbers의 길이 s.. 더보기
cos pro2급 샘플문제2 문제1 왼손 장갑의 제품 번호가 들어있는 배열과 오른손 장갑의 제품 번호가 들어있는 배열이 있습니다. 제품 번호는 1부터 10 사이의 자연수입니다. 제품 번호가 같은 왼손장갑과 오른손 장갑을 합쳐 장갑 한 쌍을 만들 수 있습니다. 이때, 최대한 많은 쌍의 장갑을 만들면 최대 몇 쌍을 만들 수 있는지 구하려 합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다. 1. 왼손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다. 2. 오른손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다. 3. 각 제품 번호별로 최대한 많은 장갑 쌍을 만들면서 개수를 셉니다. 왼손 장갑의 제품 번호가 들어있는 배열 left_gloves와 left_gloves의 길이 left_gloves_len, 오른손 장갑의 제품.. 더보기
cos pro2급 샘플문제1 문제1 A 학교에서는 단체 티셔츠를 주문하기 위해 학생별로 원하는 티셔츠 사이즈를 조사했습니다. 선택할 수 있는 티셔츠 사이즈는 작은 순서대로 "XS", "S", "M", "L", "XL", "XXL" 총 6종류가 있습니다. 학생별로 원하는 티셔츠 사이즈를 조사한 결과가 들어있는 배열 shirt_size와 shirt_size의 길이 shirt_size_len이 매개변수로 주어질 때, 사이즈별로 티셔츠가 몇 벌씩 필요한지 가장 작은 사이즈부터 순서대로 배열에 담아 return 하도록 solution 함수를 완성해주세요. 매개변수 설명 학생별로 원하는 사이즈를 조사한 결과가 들어있는 배열 shirt_size와 shirt_size의 길이 shirt_size_len이 solution 함수의 매개변수로 주어집니다.. 더보기
스레드2 스레드 생명주기 스레드는 생성되어 소멸될 때까지 여러 형태의 생명주기를 가진다. main 스레드의 정보알아보기 public class Main { public static void main(String [] args) { long id = Thread.currentThread().getId(); // 스레드 ID String name = Thread.currentThread().getName(); // 스레드 이름 Thread.State s = Thread.currentThread().getState(); // 스레드 상태 int priority = Thread.currentThread().getPriority(); // 스레드 우선순위 System.out.println("스레드 ID : " + id);.. 더보기
스레드1 프로세스란? 프로세스(process)란 단순히 실행 중인 프로그램이라고 할 수 있다. 스레드란? 스레드(thread)란 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하며 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드라고 한다. 스레드 만들기 Thread 클래스 이용 Runnable 인터페이스 이용 Thread 클래스를 상속받아 스레드 만들기 Thread 클래스의 경로명은 java.lang.Thread 이다. 함수 설명 Thread() Thread(Runnable target) Thread(String name) Thread(Runn.. target, String name) 스레드 객체 생성 Runnable 객체인 target을 이용하여 스레드.. 더보기
Collection 계열 클래스4 Vactor ArrayListd와 사용방법이 동일(메소드 호출방법과 사용법)하다. Vactor 클래스도 List 계열이다. 데이터를 삽입하고 출력해보자. import java.util.List; import java.util.Vector; public class ex01 { public static void main(String[] args) { Vector vector = new Vector(); vector.add("A"); vector.add("B"); vector.add("C"); System.out.println(vector); //3번째 요소에 삽입하기 vector.add(2,"X"); System.out.println(vector); //첫번째 요소에 삽입하기 vector.add(0,"Y").. 더보기
Collection 계열 클래스3 Map 계열 데이터를 Key와 Value값으로 한쌍으로 저장한다. key는 중복되면 안 된다. key를 이용하여 value를 얻는다. 함수 설명 put() key와 value 값을 Map에 추가 get() key로 등록된 값을 반환 remove() key에 해당하는 Map의 요소를 삭제 clear() Map의 모든 요소들를 삭제 keySet() Map의 키 목록들을 Set 형태로 리턴 values() Map의 값들을 Collection에 담아서 리턴 size() Map에 포함된 Entry 수를 반환 isEmpty() Map에 데이터가 없는지 확인( 없을 경우 true를 반환 아니면 false를 반환) containskey() Map에 Key로 등록된 Entry가 있는 확인 containsValue() M.. 더보기
Collection 계열 클래스2 List 계열 List 계열은 순서가 있고 중복이 허용된다. List 인터페이스의 주요 구현 클래스에는 ArrayList, LinkedList가 있다. 함수 설명 boolean add(E e) 요소를 추가 void add(int index, E e) 특정 위치에 전달된 요소를 추가 void clear() 모든 요소를 제거 boolean contains(Object o) 전달된 객체를 포함하고 있는지를 확인 boolean equals(Object o) 전달된 객체가 같은지를 확인 E get(int index) 특정 위치에 존재하는 요소를 반환 boolean isEmpty() 비어있는지를 확인 Iterator iterator() 반복자(iterator)를 반환 boolean remove(Object o) 전.. 더보기