728x90
반응형

분류 전체보기 105

[백준] 14500 테트로미노 (파이썬)

골드 Ⅳ https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 📄 문제 크기가 N×M인 종이 위에 테트로미노 ★하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 5가지가 모양이 있다. 테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도록 놓아야 하며, 회전이나 대칭을 시켜도 된다. 테트로미노 하나를 적절히 놓아서 테트로미..

[소프티어] 지우는 소수를 좋아해 (파이썬)

난이도 : ★★★★☆ https://softeer.ai/practice/info.do?idx=1&eid=582 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 📄 문제 여러 체육관을 거쳐 체육관 배지를 얻은 후 마지막 포켓몬 리그에서 사천왕과 챔피언에게 도전해야 하는 임무 각각의 체육관에는 체육관 관장들이 있고 그 관장들을 이겨야 체육관 배지를 얻을 수 있다. 관장들을 이기기 위해선 그 관장들이 갖고 있는 레벨(level)보다 높아야 한다. 체육관 관장들은 체육관 오는 길에 레벨 제한을 두었다. ‘X레벨 이하 지원자는 오지 마시오.’ 지우는 자신이 포켓몬 리그에 나가기 위한 최소한의 레벨이 알고 싶어졌다. 지우는 자신의 레벨도 소수(Prime Number)에 맞춰서 포..

[소프티어] [인증평가(3차) 기출] 교차로 (파이썬)

난이도 : ★★★☆☆ https://softeer.ai/practice/info.do?idx=1&eid=803 Softeer 자율주행차가 아래와 같은 교차로를 통과하는 상황을 생각하여 보자. 이 문제에서 다루는 교차로에서는 직진만 가능하기 때문에, 아래 그림과 같은 네 가지 방법으로만 교차로 softeer.ai 📄 문제 자율주행차가 교차로를 통과하는 상황 A, B, C, D 각 도로의 맨 앞에 있는 자동차는 자신을 기준으로 오른쪽에 위치한 도로에 차량이 있으면 1초 동안 출발하지 않고, 차량이 없으면 즉시 교차로를 통과한다. (반시계 방향에 차가 있으면 출발하지 않고 1초 기다림) A 위치에 있는 차량의 오른쪽에 있는 도로는 D B 위치에 있는 차량의 오른쪽에 있는 도로는 A C 위치에 있는 차량의 오른..

[운영체제] 운영 체제란?

운영 체제(OS, Operating System) 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 운영체제는 하드웨어를 관리하고, 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다. 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 즉, 중개자 역할을 다. 운영체제의 목적 1. 컴퓨터의 하드웨어 관리 컴퓨터에는 수 많은 하드웨어가 존재한다. CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등이 있으며 이를 잘 관리해주어야 컴퓨터를 효율적으로 사용할 수 있다. 운영체제의 성능이 좋을수록 컴퓨터의..

[자바] 추상클래스와 인터페이스의 차이

추상클래스 추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 유도하는 클래스이다. 이러한 특성 때문에 미완성 설계도라고 표현한다. 추상클래스는 상속을 위한 클래스이기 때문에 따로 객체(인스턴스)를 생성할 수 없다. 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상 클래스는 추상 메소드를 0개 이상 가지고 있다는 것을 제외하고는 일반 클래스와 별 다를 것이 없다. class 앞에 "abstract" 예약어를 붙여 해당 클래스가 추상 클래스임을 나타낸다. 또한 메서드도 "abstract" 예약어를 붙여 추상 메서드를 선언할 수 있다. abstract class 클래스이름 { ... public abstract void 메서드이름(); }​ 추상클래스의 특징 추상 클래스는 추상 메서드를..

Programming/Java 2023.07.13

[자바] 오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점

객체지향 프로그래밍에서 다형성을 설명할 때, 하나의 클래스 내부에 같은 이름의 기능을 여러 개 정의하거나 상위 클래스의 기능을 하위 클래스에서 다시 정의하는 것, 즉, 오버라이딩과 오버로딩에 대해서 간략하게 짚고 넘어갔었다. 이번에는 오버라이딩과 오버로딩이 구체적으로 어떻게 사용되는지. 또, 어떤 차이점을 가지고 있는지에 대해서 알아보자. 다형성 다형성이란, 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 말한다. 자바에서는 주로 오버로딩(Overloading)과 오버라이딩(Overriding)을 통해서 다형성을 지원한다. 오버로딩(Overloading) - 확장 하나의 클래스 내부에서 확장하는 개념 오버라이딩(Overriding) - 재정의 부모 클래스의 상속을 받은 자식 클래..

Programming/Java 2023.07.09

[네트워크] Blocking I/O & Non-Blocking I/O

I/O (Input / Output) I/O 작업은 Kernel level에서만 수행할 수 있다. 따라서, Process, Thread는 커널에게 I/O를 요청해야 한다. 어떠한 기기(디바이스)를 통해 입출력이 이루어지는 작업을 모두 I/O라고 한다. 즉, 네트워크를 통한 데이터 전송, 컨솔 출력 등과 같은 것도 포함된다. 이러한 I/O는 어플리케이션 성능에 가장 많은 영향을 끼친다. I/O에서 발생하는 시간은 CPU를 사용한 시간과 대기 시간 중에 대기 시간에 속하기 때문에 I/O가 많아진다느 것은 어플리케이션이 연산을 할 때까지 CPU가 아무것도 못하고 대기하는 시간이 길어진다는 의미이고, 이는 어플리케이션의 처리 속도 저하로 이어진다. 따라서 높은 성능을 보장해야하는 어플리케이션에서는 I/O가 큰 ..

CS/Network 2023.07.06

[네트워크] Blocking/Non-blocking & Synchronous/Asynchronous

동기/비동기는 우리가 일상 생활에서 많이 들을 수 있는 말이다. Blocking과 Synchronous, 그리고 Non-blocking과 Asysnchronous를 서로 같은 개념이라고 착각하기 쉽다. 각자 어떤 의미를 가지는지 간단하게 살펴보자. 2대2 매트릭스로 정리된 그림이다. 그림을 보면 Blocking 이면 반드시 Sync 가 아니고, Non-blocking 이면 반드시 async 도 아니다. 즉, Blocking / Non-blocking 과 Sync / Async 는 다른 개념이라는 것이다. Blocking / Non-blocking 과 Sync / Async 는 '관점'을 어떻게 두느냐에 따라 다르다. 블로킹 Blocking A 함수가 B 함수를 호출 할 때, B 함수가 자신의 작업이 종료..

CS/Network 2023.07.05

[네트워크] 로드 밸런싱 (Load Balancing)

로드 밸런싱 (Load Balancing) 이란? 네트워크 또는 서버에 가해지는 부하(Load)를 분산(Balancing) 해주는 기술이다. 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 로드 밸런싱의 필요성? 로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다. 서비스의 제공 초기 단계라면 적은 수의 클라이언트로 인해 서버 한 대로 요청에 응답하는 것이 가능하다. 하지만 사업의 규모가 확장되고, 클라이언트의 수가 늘어나게 되면 기존 서버만으로는 정상적인 서비스가 불가능하게 된다. 트래픽이 많은 최신 웹 사이트는 클라이언트의 수많은 동시 요청을 처리하고 텍스트, 이미지, 비디오 또는 애플리케이션 데이터 등을 빠르고 안정적인 방식으..

CS/Network 2023.07.04

[스프링] MVC, MVP, MVVM 디자인 패턴

MVVM을 이해하기 위해서는 MVC -> MVP -> MVVM 순서대로 아키텍처 패턴에 대한 이해가 필요하다. MVC 패턴 객체지향프로그래밍에서 MVC란 사용자 인터페이스를 성공적이며 효과적으로 데이터 모형에 관련 시키기 위한 방법론 또는 설계 방식중 하나로써, 목적 코드의 재사용에 유용한 것은 물론, 사용자 인터페이스와 응용프로그램 개발에 소요되는 시간을 현저하게 줄여주는 형식이라고 많은 개발자들이 평가하고 있다. Model, View, Controller의 약자로 User – View – Controller – Model – Controller – View User의 구조를 가지고 있다. MVC 패턴은 응용프로그램의 시각적 부분과 가 이면의 동작과 제어를 처리하는 부분(비즈니스 로직이라 한다)을 분리..

Programming/Spring 2023.07.03
728x90
반응형