반응형

분류 전체보기 51

1. 컴퓨터 시스템의 구성요소

안녕하세요, 여러분! 오늘은 우리 모두가 일상적으로 사용하는 컴퓨터 시스템의 구성요소에 대해 함께 살펴보도록 하겠습니다. 1. 하드웨어 하드웨어란 컴퓨터 시스템을 구성하는 물리적인 부분을 말합니다. 우리가 보고 만지고 있는 컴퓨터의 본체, 키보드, 마우스, 모니터 등이 모두 하드웨어에 속합니다. 그중에서도 가장 중요한 부분은 중앙처리장치(CPU), 기억장치, 그리고 입출력장치입니다. 1.1. 중앙처리장치(CPU) CPU는 컴퓨터의 두뇌라고 할 수 있습니다. 모든 장치의 동작을 제어하고 명령을 실행하는 역할을 합니다. 그러나 CPU도 세부적으로는 제어장치, 연산장치, 그리고 레지스터로 나뉘어집니다. 제어장치는 주기억장치에서 명령어를 순서대로 인출하고 해독한 후, 필요한 장치에 제어신호를 보내서 해당 장치가..

CS 2023.06.17

백준 1475번 - 방 번호 [python]

https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 안녕하세요, 오늘은 백준 1475번 '방 번호' 문제에 대한 Python 풀이를 공유하려 합니다. 이 문제는 주어진 방 번호를 만들기 위해 필요한 숫자 세트의 최소 개수를 구하는 문제로, 6과 9는 서로 뒤집어서 사용할 수 있다는 특징이 있습니다. 문제 이해 이 문제는 주어진 방 번호를 만들기 위해 필요한 숫자 세트의 최소 개수를 구하는 문제입니다. 숫자 세트는 0부터 9까지의 숫자가 하나씩 들어있고, 6과 9는 서로 뒤집어서 사용할 수 있다는 특징이 있습니다. 문제 접근 방식 이 문제를 풀기 ..

BOJ 2023.06.13

프로그래머스 - 푸드 파이트 대회 [Python]

https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요, 오늘은 프로그래머스 '푸드 파이트 대회' 문제에 대한 Python 풀이를 소개하려 합니다. 해당 문제는 대회에서 선수들이 먹는 음식의 종류와 양을 공정하게 배치하는 문제입니다. 문제 이해 이 문제에서 주어진 입력은 음식의 양을 칼로리가 적은 순서대로 나타내는 정수 배열입니다. 우리의 목표는 대회를 위한 음식의 배치를 나타내는 문자열을 반환하는 것입니다. 대회의 공정성을 위해 두 선수..

프로그래머스 2023.06.12

프로그래머스 - K번째수 [Python]

https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요, 오늘은 프로그래머스 'K번째수'문제 풀이를 해보겠습니다. 문제 설명 'K번째수' 문제는 배열에서 특정 구간을 잘라내고 정렬했을 때 K번째로 나타나는 수를 찾는 문제입니다. 배열 array와 명령의 목록을 담은 2차원 배열 commands가 주어집니다. 각 쿼리는 세 숫자 [i, j, k]로 이루어져 있으며, 이는 array의 i번째 숫자부터 j번째 숫자까지 잘라낸 뒤 정렬했을 때, k..

프로그래머스 2023.06.12

프로그래머스 - 두개 뽑아서 더하기 [Python]

https://school.programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요! 오늘은 프로그래머스 '두 개 뽑아서 더하기' 문제에 대해 살펴보겠습니다. 이 문제는 파이썬의 기본 자료구조와 조합(Combination)에 대한 이해가 필요한 문제입니다. 문제 설명 이 문제는 주어진 숫자 배열에서 임의의 두 수를 선택하여 더하고, 그 결과를 오름차순으로 정렬하여 출력하는 문제입니다. 여기서 주의할 점은 중복된 수를 선택하여 더하는 것은 허용하지 않고, 중복된 결과는 ..

프로그래머스 2023.06.11

프로그래머스 - 시저 암호 [Python]

https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요, 오늘은 프로그래머스 '시저 암호' 문제에 대해 살펴보겠습니다. 문제 설명 먼저 문제의 요구사항을 이해해야 합니다. '시저 암호'는 어떤 문자열을 알파벳 순서로 일정한 거리만큼 밀어내어 새로운 문자열을 만드는 방식의 암호화 기법입니다. 예를 들어 "AB" 문자열이 주어지고, 1만큼 밀어내라는 명령이 있다면 결과는 "BC"가 됩니다. 만약 'Z' 문자가 주어지고 1만큼 밀어내라는 명령이 ..

프로그래머스 2023.06.10

프로그래머스 - 삼총사 [Python]

https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요, 오늘은 '삼총사'라는 문제를 함께 살펴보려 합니다. 이 문제는 3개의 정수를 선택해서 합이 0이 되는 경우의 수를 찾는 문제로, 브루트 포스 방식을 이용해서 해결할 수 있습니다. 문제 설명 이 문제는 학교에 다니는 학생들이 각자 정수 번호를 가지고 있고, 이 중에서 3명의 학생의 정수 번호를 더했을 때 0이 되면 그 학생들을 '삼총사'라고 부르는 규칙을 가지고 있습니다. 우리의 목표..

프로그래머스 2023.06.09

프로그래머스 - 문자열 내 마음대로 정렬하기 [Python]

https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 안녕하세요, 오늘은 프로그래머스의 '문자열 내 마음대로 정렬하기' 문제를 함께 풀어보려 합니다. Python을 이용해 풀어볼 텐데요, 이 문제는 문자열 정렬과 람다(lambda) 함수 사용법에 대해 깊이 이해할 수 있는 좋은 문제입니다. 문제 설명 이 문제는 주어진 리스트(strings)의 문자열들을 주어진 인덱스(n)에 위치한 문자를 기준으로 정렬하되, 그 문자가 같을 경우 문자열 전체를 비교하..

프로그래머스 2023.06.09

백준 1966번 - 프린터 큐 [Python]

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 안녕하세요! 오늘은 백준 1966번 프린터 큐 문제를 Python으로 풀이하는 방법에 대해서 정리해보려고 합니다. 이 문제는 큐 자료구조를 이용해 해결할 수 있는 문제입니다. 문제 이해 문제는 프린터의 출력 순서를 결정하는 알고리즘에 관한 것입니다. 문서의 중요도에 따라 출력 순서가 결정되며, 더 중요한 문서가 입력되면 앞서 대기하던 문서는 뒤로 밀리게 됩니다. 우리가 알아낼 것은 특정 문서가 언제 ..

BOJ 2023.06.07

백준 11659번 - 구간 합 구하기 4 [python]

Python 코드 n, m = map(int, input().split()) numbers = list(map(int, input().split())) sum = [0] tmp = 0 # 누적 합 구하기 for i in numbers: tmp = tmp + i sum.append(tmp) # 구간 합 구하기 for _ in range(m): i, j = map(int, input().split()) print(sum[j] - sum[i-1]) Python 코드 풀이 이번 문제는 구간 합을 구하는 문제입니다. N과 M의 최대 횟수는 각각 100,000이기 때문에 시간 복잡도를 고려해야 합니다. 완전 탐색 알고리즘으로 풀게 되면 시간 초과가 발생할 수 있습니다. 그래서 누적합 기법을 사용하여 합 배열을 미리..

BOJ 2023.04.03
반응형