Computer Science 46

[Linux] 사용자 분류와 계정 명령어

* 사용자 분류루트 계정 : 모든 권한을 가진 특별한 사용자(UID 값이 0)시스템 계정 : 리눅스 설치 시 기본으로 생성되는 계정사용자 계정 : 실제 리눅스 사용자를 위한 계정(관리자에게 권한을 부여받아 사용)→ 리눅스에서는 사용자를 root(관리자)와 일반 사용자로 구분.각각 계정은 흔히 사용하는 ID가 아니라 번호로 부여하는 UID로 관리 * 리눅스 계정과 관련된 명령어들현재 호스트에 로그인 되어 있는 모든 사용자 출력$ users모든 사용자 정보 자세히 출력(터미널 종류, 로그인 시각 등 기본적으로 출력)$ who [options]계정 전체 확인$ cat /etc/passwdroot 암호 설정$ sudo passwd rootroot 로그인# 현재 계정에서 root 권한을 이용하여 명령어를 실행할 ..

[디자인 패턴] 싱글톤 패턴

* 개요 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용한다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 하지만 모듈 간의 의존성이 높아진다는 단점이 있다. * 자바에서의 싱글톤 패턴 class Singleton { private static class singleInstanceHolder { private static final Singleton INSTANCE..

[알고리즘] 프로그래머스 - 기사단원의 무기(java)

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해..

[알고리즘] 백준 1072번 - 게임(Java)

1072번: 게임 (acmicpc.net) 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 문제 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시작했다. 의심을 피했다고 생각한 형택이는 다시 게임을 켰다. 그 때 형택이는 잠시 코딩을 하는 사이에 자신의 게임 실력이 눈에 띄게 향상된 것을 알았다. 이제 형택이는 앞으로의 모든 게임에서 지지 않는다...

[알고리즘] 백준 9663번 - N-Queen(Java)

9663번: N-Queen (acmicpc.net) 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예제 입력 1 복사 8 예제 출력 1 복사 92 * 풀이 N-Queen 문제는 가장 대표적인 백트래킹 문제다. 해당 ..

[알고리즘] 백준 9095번 - 1, 2, 3 더하기(Java)

9095번: 1, 2, 3 더하기 (acmicpc.net) 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 ..

[알고리즘] 프로그래머스 - k진수에서 소수 구하기(Java)

코딩테스트 연습 - k진수에서 소수 개수 구하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 문제 설명 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우 P처럼 소수 양쪽에 아무것도 없는 경우 단, P는 각 자릿수..

[운영체제] 멀티프로세스와 멀티스레드

* 프로그램 & 프로세스 - 프로그램 : 어떤 작업을 위해 실행할 수 있는 파일 - 프로세스 1. 컴퓨터로부터 연속적으로 실행되고 있는 컴퓨터 프로그램 2. 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 3. 운영체제로부터 시스템 자원을 할당받는 작업의 단위, 동적인 개념으로 실행된 프로그램 4. 독립된 메모리 영역 5. 기본적으로 프로세스는 최소 1개의 스레드를 가지고 있다. 6. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC)을 사용해야 한다.(Ex 파이프, 파일, 소켓..) * 프로그램과 프로세스의 관계 프로세스 = 프로그램 + 프로세스 제어 블록(PCB) 프로그램 = 프로세스 - 프로세스 제어 블록(PCB) * 스레드 1. 프로세스 내에서 실행되는 ..

[운영체제] CPU와 메모리

* CPU의 구성과 동작 CPU는 명령어를 해석하여 실행하는 장치로 요리사 모형에서는 요리사에 해당한다. CPU는 산술논리 연산장치, 제어장치, 레지스터로 구성되며, 이것들의 협업으로 작업을 처리한다. 1. 산술논리 연산장치 요리사가 재료를 삶거나 찌거나 볶듯이 CPU에서 데이터를 연산하는 장치가 산술논리 연산장치이다. 산술논리 연산장치는 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행한다. 2. 제어장치 요리를 할 때 요리사의 머릿속에는 '도마 위의 재료를 가져와라', '양파껍질을 미리 벗겨놓아라', '다 된 요리를 접시에 담아라' 등의 지시가 이루어진다. 이처럼 CPU에서 작업을 지시하는 부분을 제어장치라고 한다. 제어장치는 명령어를 해석하여 제어 신호를 ..

[운영체제] 컴퓨터의 기본 구성

* 하드웨어의 구성 컴퓨터는 중앙처리장치(CPU), 메인메모리, 입력 장치, 출력 장치. 저장 장치로 구성된다. 중앙처리장치와 메인 메모리는 필수 장치, 중앙처리장치와 메인메모리 외의 부품은 주변 장치라고 한다. 메인메모리는 전력이 끊기면 데이터를 잃어버리기 때문에 데이터를 영구히 보관하려면 하드디스크나 USB 메모리를 사용해야 한다. 그래서 메인메모리를 제1 저장장치, 하드디스크나 USB 메모리 같은 메모리를 제2 저장장치 또는 보조저장장치라고 부른다. 1. CPU와 메모리 CPU는 명령어를 해석하여 실행하는 장치로, 인간에 비유하면 두뇌에 해당한다. 메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소로, 바이트 단위로 분할되어 있으며 분할 공간마다 주소로 구분한다. 2. 입출력장치 입력장치는 외..