본문 바로가기

프로그래밍 언어

(83)
Week12) Java Programming Lab : Generic Collections 1. The collections framework 1.1 collection java.util 패키지 collection = 자료구조 객체 자바 collection은 collections 프레임워크에 속한 것 이미 생성되어 있는 자료 구조 사용 가능 자료구조 조작을 위한 메소드 인터페이스 사용 가능 2. Wrapper Classes primitive 데이터타입들은 그에 해당하는 wrapper 클래스를 가지고 있음 원시 데이터에 대한 객체 버전을 제공하는 wrapper 클래스 2.1 Autoboxing and Auto-Unboxing public class Boxing{ public static void main(String[] args){ // boxing (원시 데이터 -> wrapper class)..
Week11) Java Programming Lab : File I/O Streams 데이터가 프로그램과 입출력 디바이스 또는 파일 사이를 흐를 수 있게 하는 객체 input stream : 프로그램으로 들어가는 데이터 output stream : 프로그램에서 나오는 데이터 2. Files Types 2.1 Text Files ASCII files 에디터로 읽고 쓰기가 가능한 파일 사람이 읽을 수 있도록 설계된 파일 2.2 Binary Files 프로그램이 읽을 수 있도록 설계된 파일 일련의 이진수로 구성된 파일 텍스트 파일보다 효율적인 처리가 가능 3. Text files Processing 3.1 Write / Appending PrintWriter class 스트림 클래스 텍스트 파일에 쓰기 위한 클래스 print, println 메소드를 가지고 있음 System.ou..
Week10) Java Programming Lab : Multithreading 1. Introduction 1.1 멀티쓰레딩이란? 멀티쓰레딩 = 멀티프로세싱 멀티 프로세싱 운영체제는 동시에 여러개의 프로세스를 실행시킨다 각 프로세스는 자신만의 주소 및 메모리 공간을 갖는다. 운영체제 스케줄러는 어떤 프로세스를 실행시킬지 결정하는데 한번에 오직 하나의 프로세스만 실행가능하다. 그런데 시스템이 동시에 여러 프로세스가 실행되는 것'처럼' 보이게 하는 것 멀티쓰레드 애플리케이션은 동일한 메모리 공간 내에서 여러 개를 실행 포인트가 있다. 각 테스크들이 분리된 쓰레드로 동작함 하나의 쓰레드가 오래걸리는 것이 전체 애플리케이션이 그 쓰레드 하나를 끝낼때까지 기다리게 하지 않음 싱글쓰레드 애플리케이션에서는 하나의 실행 쓰레드가 모든 것을 해야 한다. 메인 메소드 있는 클래스에서 모든 것을 ru..
[Javascript/프로그래머스] 완전탐색 : 카펫 완전탐색 3. 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 입출력 예 brown yello return 10 2 [4, 3] 8 1 [3, 3] 24 24 [8, 6] 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 ..
[Javascript/Codility] Lesson3) Time Complexity : FrogJump [Codility] Lesson3) Time Complexity : FrogJump 문제 한번에 D만큼씩 점프할 수 있는 개구리가 X에서 Y까지 도달하려면 최소 몇 번 점프해야 하는지 구하라. 내가 푼 소스코드 function solution(X,Y,D){ return Math.ceil((Y-X)/D); }
[Javascript/Codility] Lesson2) Array : CyclicRotation [Codility] Lesson2) Array : CyclicRotation 문제 주어진 배열 A의 요소들을 K만큼 로테이션을 돌린 배열을 반환한다. ex) solution([3, 8, 9, 7, 6], 3) >> [3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7] [6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9] [7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8] 내가 푼 소스코드 function solution(A, K) { let arr = A.length==0 ? [] : A; if (arr.length == K){ return arr; } for (let i = 0; i < K; i++){ let tail = arr.pop(); A.unshift(tail); }..
[Javascript/Codility] Lesson 1) Iterations : BinaryGap [Codility] Lesson 1) Iterations : BinaryGap 문제 파라미터로 주어진 정수 N을 이진수로 했을 때, 1 사이의 연속된 0 의 최대 길이를 반환하는 문제이다. 예를 들어 N=9 인 경우, 이진수로 변환하면 1001 이고 1 사이의 연속된 0 의 길이는 2 이다. 그러나 N=8인 경우, 1000에서는 1사이에 있는 0은 없기 때문에 0을 반환해야 한다. 내가 푼 코드 function solution(N) { // 파라미터 바이너리로 바꾸기 const bin = N.toString(2); // 연속된 0의 최대 길이 let result = 0; // 연속된 0의 길이를 임시로 저장할 변수 let gap; // 이진수 처음부터 for 문 돌리기 for (n of bin){ // ..
Week9) Java Programming Lab : Exception Handling Introduction Exception : 런타임 에러 , 프로그램 실행 중 발생하는 문제 Exception handling : 실행 중 발생한 에러를 해결하여 프로그램이 계속해서 실행될 수 있도록 예외를 처리하는 것 2. Exception handling Examples ArrayIndexOutOfBoundsException : 배열의 범위를 넘어선 요소에 접근하려고 하는 경우 발생 ClassCastException : 객체 데이터 타입 변환이 적절하지 않은 경우 발생 NullPointerException : 널 값을 참조한 경우 발생 3. Application without Exception Handling (Example) import java.util.InputMismatchException; ..