문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제조건 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자..
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제조건 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 ..
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 조건 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해..
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 조건 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010..
알고리즘의 시간복잡도,공간복잡도 를 나타낸다. * 참고로 알고리즘의 복잡도는 시간복잡도와 공간복잡도가 있다. 더보기 시간복잡도 소스코드의 실행 시간을 예측하여 얼마나 효율적인지 나타낸다. 실행 시간은 연산에 비례한다. 공간복잡도 코드가 메모리공간을 얼마나 효율적으로 쓰는지를 나타낸다. 공간을 미리 확보해야하는 자료구조에 쓰인다. 시간복잡도의 세가지 표기법 Big-O(빅-오) : 최악의 경우 Big-Ω(빅-오메가) : 최선의 경우 Big-θ(빅-세타) : 평균의 경우 이중 우리는 최악의 경우를 생각하여 알고리즘의 시간 복잡도를 나타낸다. 최선의 경우와 최악의 경우가 차이가 많이 나는 경우도 있기 때문. 빅오 표기법의 종류 1. O(1) Constant 입력값이 아무리 커도 실행 시간은 일정하다. ex ) ..
1. 컴퓨터 시스템의 구조 입력 (input) : 컴퓨터 내부로 데이터가 들어오는 것 출력(output) : 컴퓨터 외부 장치(= 입출력장치)로 데이터가 나가는 것 입출력(I/O) : ex ) 키보드로부터 입력받아 컴퓨터가 연산을 한 후 결과를 모니터에 출력하는 것 메모리 및 입출력장 등의 하드웨어 장치에는 컨트롤러가 있다. 컨트롤러는 일종의 작은 CPU로써 각 하드웨어 장치에서의 제어를 담당한다. 메모리를 제어하는 메모리 컨트롤러, 디스크를 제어하는 디스크 컨트롤러등이 있다. 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분을 커널이라고 한다. 2. CPU연산과 I/O 연산 로컬 버퍼(local buffer) : 장치 컨트롤러는 장치로부터 오고 나가는 데이터를 임시로 저장하기 위해 작은 메모..
ㅇ1. 운영체제의 정의 운영체제(operating system) : 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 역할 운영체제는 항상 필요한 부분만 메모리(커널 : kernel)에 올리고, 나머지는 필요할 때 메모리에 올림 ✔ 넓은 의미의 운영체제 시스템을 위한 유틸리티들 - MS윈도우에서 파일을 복사하는 프로그램 - 유틸리티들은 운영체제의 일부라 보기 힘들지만, 시스템을 위한 유틸리티로 운영체제에 함께 설치되므로 운영체제에 포함 2. 운영체제의 기능 하드웨어를 위한 역할 : 컴퓨터 시스템 내의 자원(resource)을 효율적으로 관리하는 것 사용자를 위한 역할 : 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공하는 것 핵심기능 ) 컴퓨터 시..