컴퓨터 & 코딩 79

[Fachinformatiker] HDD - Festplatte

HDD (Hard Disk Drive, Festplatte) - ein magnetisches Speichermedium. 기계식, 비휘발성(전원이 써지더라도 저장된 데이터는 유지됨) - Daten werden auf die Oberfläche rotierender Scheiben (Platter) geschrieben. 플래터를 회전시켜 자기 패턴으로 정보를 기록 0. HDD에서의 데이터 읽기, 쓰기, 저장 - Schreiben: Berührungslose Magnetisierung der hartmagnetischen Beschichtung der Scheibenoberfläche entsprechend der aufzuzeichnenden Information - Speichern: Remanenz..

[Python] Advent of Code 2022 - Day 11

원숭이가 갖고 있는 아이템들이 문제에 제시된 조건에 맞게 다른 수로 바뀐 후 다른 원숭이에게 넘겨주는 과정을 반복한다. 각 원숭이마다 총 몇 개의 아이템들이 거쳐갔는지 계산하고 그 중 가장 큰 횟수 두 개를 곱해주면 되는 문제였다. import math file = open("input/day11.txt", "r") data = file.read().splitlines() monkeys_list = [] temp = [] count = 0 # 1 for line in data: if line == "": monkeys_list.append(temp) temp = [] elif line != "": temp.append(line.strip()) monkeys_list.append(temp) monkeys_..

[Python] Advent of Code 2022 - Day 10

이번 인풋데이터는 addx N(정수)와 nood로 구성 된 프로그램이 들어있었고 addx N은 cycle이 두 번 일어나고, cycle이 끝날 때 value가 N만큼 더해지는 반면 nood는 cycle이 한 번 일어나는 것 외에 다른 동작은 하지 않는다. 인풋 데이터의 프로그램을 돌렸을 때 20번째, 60번째, 100번째, 140번째, 180번째, 220번째 사이클에서의 value 값을 구해내어 각각의 사이클값과 곱한 값을 총 더 해주면 몇이 되는지 구해야 한다. file = open("input/day10.txt", "r") data = file.read().splitlines() program_proceeds = [] for line in data: program_proceeds.append(line..

[Python] Advent of Code 2022 - Day 9

head가 인풋에 따라 위치를 이동하는데 이에 따른 tail의 경로를 파악하여 tail이 훑고간 위치가 총 몇 군데 되는지 계산하는게 이번 과제의 문제였다. 문제를 처음 봤을 때는, 리스트로 하나의 필드를 만들어서 움직임을 줘야하나 했지만 인덱스가 늘어날 때마다 요소를 하나씩 추가하는 게 까다로울 것 같아서 head와 tail의 좌표만 리스트로 담아놓았다. pos[0]은 x좌표를, pos[1]은 y좌표를 나타낸다. file = open("input/day9.txt", "r") data = file.read().splitlines() motions_list = [] # split for motion in data: motions_list.append(motion.split()) head_pos = [0, ..

[Python] Advent of Code 2022 - Day 8

Part One 아주 지저분하게 풀어서 자신은 없지만 일단 풀이과정을 써본다. 이번 과제는 99x99의 숫자열이 있다. 각 숫자들은 나무의 키를 나타낸다. 이때 동서남북으로 얼마나 많은 나무가 보이는지 세는 문제이다. 동서남북으로 본인보다 키(숫자)가 크거나 같은 나무(숫자)가 있다면 보이지 않는다. file = open("input/day8.txt", "r") trees_list = file.read().splitlines() tree_list = [] temp = [] # 1 for trees in trees_list: for tree in trees: temp.append(int(tree)) tree_list.append(temp) temp = [] tree = None left = [] right..

[Python] Advent of Code 2022 - Day 7

Part One 이번 인풋에는 폴더를 탐색하는 커맨드가 한 줄 씩 적혀있고, 현재 읽고 있는 폴더 트리에서 폴더의 크기가 100,000 이하인 것들의 데이터 크기의 합을 구해내는 게 이번 과제이다. 일단 파일경로를 파악하기 위해 폴더 트리를 만들어야 했고 어떤 데이터 타입으로 만들까 하다 nested dictionary로 정하였다. 단순히 값을 나열해야하는 게 아니라 어떤 경로를 가진 어떤 폴더에 얼만큼의 파일이 있는지 알아내야 했기 때문이다. 예시에 나온 폴더로 예상 폴더 트리의 모습을 짜보자면, nested_dict = { "a": { "e": { "i" : 584 }, "f": 29116, "g": 2557, "h.lst" : 62596 }, "b.txt": 14848514, "c.dat": 850..

[Python] Advent of Code 2022 - Day 6

Part One 일련의 알파벳들로 구성된 엄청 긴 한 줄의 string자료를 앞에서부터 네 개 씩 묶어보며, 그 네 개의 알파벳들 중 겹치는 알파벳이 존재하는 지 (예: ['a', 'b', 'b', 'c']) 확인하고 모든 알파벳이 다르게 구성되어있는(예: ['a', 'b', 'c', 'd']) 가장 첫 번째 지점의 "인덱스+1" 를 구하는 문제이다. file = open("input/day6.txt", "r") letters_data = file.read() check = [] # 1 for i in range(4): check.append(letters_data[i]) # 2 for j in range(len(letters_data) - 4): if len(set(check)) != 4: del ch..

[Python] Advent of Code 2022 - Day 5

Part One 각 숫자 라인에 담겨있는 요소들이 정해진 순서에 따라 정해진 개수가 왔다갔다 해야하는 과제. 최종적으로 가장 윗라인에 있는 알파벳들을 읽어내야 한다. (예: 현재 위의 표에서는, FFQJWWFBW) file = open("input/day5.txt", "r") crates_data = file.read().splitlines() # 1 temp_list = [] crates_list = [] a = 1 for j in range(9): for i in range(0, 8): if crates_data[i][a] != " ": temp_list.append(crates_data[i][a]) crates_list.append(temp_list) a += 4 temp_list = [] # 2 ..

[Python] Advent of Code 2022 - Day 4

매 라인마다 두 숫자 그룹(ex. 1-4, 6-10)이 있고, 한 숫자 그룹이 다른 숫자 그룹에 완전히 속해있는 경우(ex. 3-5, 1-10)가 총 몇 개 있는지 알아내는 문제. Part One file = open("input/day4.txt", "r") data_list = file.read().splitlines() pairs_list = [] # 1 for data in data_list: list = data.split(",") pairs_list.append(list) temp_number_list = [] new_pairs_list = [] # 2 for pairs in pairs_list: for pair in pairs: number = pair.split("-") temp_number..

[Python] Advent of Code 2022 - Day 3

Part one 대문자/소문자 알파벳이 섞인 string들을 다 반 씩 나누고 그 각각의 절반에 공통으로 들어있는 알파벳을 구해내어, 알파벳에 해당하는 숫자값들의 합을 구하는 문제. import string # 1 file = open("input/day3.txt", "r") rucksacks_list = file.read().splitlines() character_list = [] # 2 for rucksack in rucksacks_list: first, second = rucksack[:len(rucksack)//2], rucksack[len(rucksack)//2:] # 3 for character in first: if character in second: character_list.appen..

320x100