장진수교수님 - 리눅스
운영체제(OS)
- CPU, Memory, I/O device들을 관리하는 프로그램
- 다른 컴퓨터와 통신을 할 수 있게 도와주는 역할
- access control(접근제어)
- 실행중인 프로세스를 관리
- HW에 접근할 수 있는 인터페이스를 제공
리눅스(Linux)
- pc 기반 운영체제
- UNIX(서버용) => 개인용으로 만든 것이 Linux
GNU(GNU'S Not Unix)
- 자유 소프트웨어
- 소스코드를 다운받아 자유롭게 실행할 수 있다는 장점
Kernal
- File Management
- IPC(Inter process Communication)
- CPU Scheduler
- Process Management
- Primary and Secondary Storage Management

가장 상위 디렉토리 : root ( / )
/bin/ : 중요한 command들이 저장되어있는 폴더
/dev/, /proc/ : 시스템 관련 파일들이 저장되어있는 폴더
권한
user, group, others
read, write, execute
리눅스 명령어
pwd : 현재 어떤 폴더에 있는지 출력해줌
touch 파일명 : 빈 파일 생성
mkdir : 새 디렉터리 생성
Absolute paths(절대경로) : root에서 시작
Relative paths(상대경로) : 현재위치에서 시작
#주석
cd : 디렉터리 변경
cd ~ : home으로 이동
cd / : root로 이동
cp : copy file / directory
ex) cp sample_file.txt dir1 => sample_file.txt를 dir1으로 복사해라
cp -a dir dir1_copy => -a : attributes를 모두 보존하면서 디렉터리를 복사
ls : 디렉터리 안의 컨텐츠 확인
mv : move, 이동 or 이름 변경
rm : remove, 파일이나 디렉터리 삭제
rm -r : 하위까지 모두 삭제
rm -i : 파일마다 삭제를 해도 되는지 확인을 받겠다
echo "Hello World" > readwrite.txt
> : 내용이 들어갈 때 파일이 존재하지 않으면 새로 생성, 존재했다면 기존 내용을 모두 지우고 삽입
>> : 기존 파일의 내용을 유지하면서 가장 뒤에 덧붙임
cat : 파일 내용을 읽을 때 사용
실습


vi editor
vi 파일명

프로그래머스 - 프론트엔드 미니 데브코스
고양이사진첩 만들기

API 연결

코딩테스트
Umm 문자열 1
import re
p = re.compile('^Umm+$')
t = int(input())
for i in range(t):
n = int(input())
s = input()
a, b = map(int, input().split(" "))
target = s[a-1:b]
match = p.search(target)
if match is None:
print('NO')
else:
print('YES')
정규표현식을 이용해 쉽게 해결할 수 있었다.
Umm 문자열 2
t = int(input())
for i in range(t):
n, m = map(int, input().split(" "))
s = input()
dp = [0] * n
result = 0
for j in range(n):
if s[j] == 'U':
dp[j] = 1
elif s[j] == 'm':
if dp[j-1] > 0:
dp[j] = dp[j-1] + 1
for j in range(m):
a, b = map(int, input().split(" "))
if dp[a-1] == 1 and dp[b-1] >= 3 and dp[b-1] == (b-a+1):
result += 1
else:
result += 0
print(result)
Umm 문자열1 처럼 풀었더니 효율을 따지는 테스트케이스에서 시간초과가 발생했다.
dp를 이용하여 해결하였다.
'SW Academy' 카테고리의 다른 글
[CNU SW Academy] 32일차(23.01.13) (0) | 2023.01.13 |
---|---|
[CNU SW Academy] 31일차(23.01.12) (0) | 2023.01.12 |
[CNU SW Academy] 28일차(23.01.09) (0) | 2023.01.09 |
[CNU SW Academy] 12.14 보강 (0) | 2023.01.08 |
[CNU SW Academy] 27일차(23.01.06) (0) | 2023.01.06 |