※ 컴퓨터의 구조부터 크게 파악하면서, 구조상 어느 위치에서 어떤 기능을 하는 지 이해하면 좋을 것 같아, 컴퓨터의 구조부터 정리했다..
컴퓨터의 구조 : 하드웨어, 소프트웨어
컴퓨터의 하드웨어의 구성
※ 여기에서는 프로세서를 CPU로 통칭함.
👉 컴퓨터의 기억장치의 분류
- 기억장치 : 프로그램, 데이터, 연산의 중간 결과를 저장하는 장치
- 주기억장치 : 속도가 빠르고, 현재 실행 중인 프로그램 등에 필요한 데이터를 일시적으로 저장
- RAM, (, ROM), (CPU의) CACHE, (CPU의) 레지스터
- 보조기억장치 : 주기억장치에 비해 속도는 느리나, 많은 자료를 영구적으로 보관
- 하드디스크
※ 출처 : CPU 구조
CPU란?
CPU의 구성
인출 → 해석 → 실행 → 저장
※ 위 과정이 세분화되고, 분리된 각각의 프로세스를 스레드라 한다.
우리가 어떤 프로그램을 실행하면, 그 데이터는 램으로 이동하고, 아래의 과정을 거치게 된다.
컴퓨터와 프로그래머와의 통신
✍️ 반복되지 않는 문자
let a = 'abadabac';
function solution(str) {
let arr = str.split('');
for (let i = 0; i < arr.length; i++) {
copyArr = arr.splice(arr[i], 1);
if (arr.includes(arr[i])) {
return arr[i];
} else {
return '_';
}
}
}
console.log(solution(a));
def find_not_repeating_first_character(string):
alphabet_occurrence_array = [0] * 26
for char in string:
if not char.isalpha():
continue
arr_index = ord(char) - ord("a")
alphabet_occurrence_array[arr_index] += 1
not_repeating_character_array = []
for index in range(len(alphabet_occurrence_array)):
alphabet_occurrence = alphabet_occurrence_array[index]
if alphabet_occurrence == 1:
not_repeating_character_array.append(chr(index + ord("a")))
for char in string:
if char in not_repeating_character_array:
return char
return "_"
result = find_not_repeating_first_character
print("정답 = d 현재 풀이 값 =", result("abadabac"))
print("정답 = c 현재 풀이 값 =", result("aabbcddd"))
print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa"))