전체 글 100

[프로그래머스] #120833 배열 자르기, Arrays.copyOfRange

https://school.programmers.co.kr/learn/courses/30/lessons/120833 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 배열의 인덱스 num1부터 num2까지의 배열을 반환하는 문제이다.나는 가장 기본적인 방식으로 풀이한 것 같다.class Solution { public int[] solution(int[] numbers, int num1, int num2) { int[] answer = new int[num2 - num1 + 1]; for (int i = num1; i 하지만 아래와 같이 Arrays.copyOfRange(배열이름,..

[프로그래머스] #120847 최댓값 만들기(1), stream, Collections

https://school.programmers.co.kr/learn/courses/30/lessons/120847 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 생각 정리두 수를 곱해 최댓값을 구하려면, 배열을 정렬하고 큰 두 수를 곱하자. 풀이1) 틀린 풀이처음에 작성한 풀이이다.import java.util.*; class Solution { public int solution(int[] numbers) { Arrays.sort(numbers, Collections.reverseOrder()); int answer = numbers[0] * numbers[1]; re..

[백준] #1463 1로 만들기

요즘은 DP 문제들을 연습하고 있다. 지난번에 푼 "#2839 설탕 배달" 문항이랑 비슷한 느낌인 문제이다.그 느낌을 기억해서 풀려고 했는데, 처음 제출한 코드는 아래와 같다. (채점 결과 틀렸다.)import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] dp = new int[N + 1]; ..

[백준] #4195 친구 네트워크, Map과 HashMap, Arrays.fill()

최근에 union-find 알고리즘을 접하고 나서는 이에 익숙해지고자 관련 문제를 풀고 있다.이 "친구 네트워크" 문제도 그 중 하나다. 우선 내가 처음 제출했던 코드다.코드 상으로 틀린 것 같진 않은데 시간 초과가 발생했다.코드를 작성하면서도 삼중 for문이 있다보니 시간초과가 발생할 것 같다는 생각은 했지만,이 방식말고는 방법이 생각이 안나서 제출했었다.import java.util.*;import java.io.*;public class Main { static ArrayList parent; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(ne..

[백준] #1260 DFS와 BFS

기본적인 DFS, BFS 문제이다. 오랜만에 알고리즘 문제를 풀기로 다짐해서 차근차근 연습해볼 생각이다. 내가 맨 처음 작성한 코드는 아래와 같다.import java.io.*;import java.util.*;public class Main { static ArrayList[] adjList; static boolean[] isVisited; static StringBuilder sb; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st ..

[클라우드 컴퓨팅] 2. 마이크로서비스 개요

마이크로서비스란?: 개별적으로 배포 일정을 갖고 업데이트 운영이 가능한 작고 독립적인 소프트웨어 프로세스다른 마이크로서비스와 별개로 업데이트 가능필요에 따라 외부에 노출하거나 외부 접근 불허하나의 마이크로서비스가 많은 기능을 갖지 않는다. 마이크로서비스 앱이란?: 프로젝트의 주요 기능들을 수행하기 위해 서로 협업하는 작은 서비스들로 구성된 분산 프로그램클러스터 안에서 동작하는 여러 개의 작고 독립적인 서비스로 구성 (각각의 서비스나 구성 요소는 논리적 또는 가상으로 구분된 컴퓨터에 위치)모놀리스와 마이크로서비스1. 모놀리스: 전체적인 앱이 단일 프로세스로 동작앱 개발 난이도가 낮다.작은 규모(= 낮은 복잡도)의 실험적 모델 개발에 적합 (작은 규모의 개발엔 microservice architecture을..

Cloud 2025.03.18

[클라우드 컴퓨팅] 1. 클라우드 컴퓨팅 개요

클라우드란?: 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술: 사용자가 언제든지 인터넷과 모바일 등을 통해 IT 서비스를 제공받을 수 있도록 하는 컴퓨팅 기술* IT 서비스: 인프라에 사용되는 서버, 저장소, 데이터베이스, 네트워크, 소프트웨어, 데이터 분석 등 클라우드의 장점1. 민첩한 서비스 도입, 탄력적인 확장과 축소, 자동화된 서비스 유지 관리 가능2. 낮은 운영 비용과 비즈니스 요구사항의 변화에 빠르게 적응할 수 있는 환경 제공3. 재난 시 장애 복구 가능재난으로 인한 데이터 손실로부터 상대적으로 안전여러 대륙에 걸친 데이터 센터에 데이터 복제4. 가용성(Availability)서비스를 호스팅하는 서버가 있는 데이터 센터에 어떤 문제가 발생하더라도 서비스 중단없이 제공..

Cloud 2025.03.10

[운영체제] 4. 프로세스 스케줄링

다중프로그래밍(multi programming)시스템 내에는 여러개의 프로세스가 존재하므로 자원을 나누어서 사용해야 하고, 따라서 자원을 할당할 프로세스를 선택하는 "스케줄링"이 필요하다. 자원 관리에서는 아래 두 가지 개념을 다룬다.1. 시간 분할(time sharing) 관리: 하나의 자원을 여러 스레드들이 번갈아가며 사용e.g., 프로세서(CPU)는 1번에 1개만 사용 가능하다.프로세스 스케줄링: 프로세서 사용시간을 프로세스들에게 분배2. 공간 분할(space sharing) 관리: 하나의 자원을 분할하여 동시에 사용e.g., 메모리스케줄링의 목적시스템의 성능 향상1. 대표적인 시스템 성능 지표(index)목적에 맞는 지표를 고려하여 스케줄링 기법을 선택해야 한다. (1) 응답시간(response ..

CS/운영체제 2025.03.05