Karnaugh-Map Implementation (only 4×4, Python)
·
🎓School/과제
During a recent lecture on Digital Logic Design, my professor surprised us with an unexpected assignment. "If your major is computer science," he announced, "you need to know how to implement a Karnaugh map." Initially, I had been working on an algorithm for a different project, but I paused my work and dove into implementing the K-map. At the outset, it proved to be quite challenging. After muc..
[백준 1236번] 성 지키기 (Python/파이썬)
·
📚Algorithm/백준
https://www.acmicpc.net/problem/1236 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net 최근 백준 open Contest에서 그리디 + 구현 문제를 만났는데 아이디어는 바로 생각했으나 구현을 못해서 못풀었다. 구현력을 늘리고자 이 문제를 풀었다. 각 행과 열에는 최소 하나 이상의 경비병이 있어야한다. 최소로 경비병을 세우려면 몇명을 더 추가로 배치해야하냐는 문제이다. 필자는 2차원 배열을 받은 후에 전치행렬(행과 열을 바꾼 행렬)을 만들어서 문제를 해결하였다. 처음 원래 ..
[백준 9019번] DSLR (Python/파이썬)
·
📚Algorithm/백준
https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 문제를 처음 보면 그래프 문제라고는 생각하기 힘들수도 있지만, 범위를 보면 하나씩 다 채울만 하겠다 라는 생각이 든다. 숫자가 0부터 9999까지 밖에 없으므로 이전에 했던 과정을 저장하면서 4가지의 과정을 노가다로 다 저장하면 된다. 처음에는 "" 빈 문자열이고 숫자를 받으면 그에대해서 D, S, L, R을 각각 실행한다. 그럼 실행한 숫자까지 필요한 과정으로 각각 D, S, L, ..
2주차 [배열과 동적할당]
·
📚Algorithm/C 언어
배열도 포인터다! C언어에서는 배열도 포인터이다. 포인터 연산자를 통해서 배열에 접근할 수 있으며 초기값은 배열의 첫번째 원소다. 예시를 통해 한번 보자. 위의 이미지를 보면 함수의 파라미터로 배열을 넣어주었다. 위의 배열은 int 배열 이므로 인트 포인터타입으로 배열을 받아온것을 볼 수 있다. 저렇게 배열을 받아오면 arr에는 배열의 첫번째 원소의 주소가 담겨져 있다. 배열의 값을 사용하려면 지난번에 했던 것처럼 역참조를 통해서 *arr이라고 쓰면 배열의 첫번째 원소의 값을 나타낸다. (배열의 두번째, 세번째 값을 받아오고 싶으면 *(arr+i)와 같이 i에 적당한 숫자를 대입하므로써 배열의 값에 접근할 수 있다.) 동적할당 C를 공부하는 내내 이것만 기다렸다. 프로그램 실행 중에 유동적으로 메모리 공..
[백준 12383번] Diamond Inheritance (Large) (Python/파이썬)
·
📚Algorithm/백준
https://www.acmicpc.net/problem/12383 12383번: Diamond Inheritance (Large) The first line of the input gives the number of test cases, T. T test cases follow, each specifies a class diagram. The first line of each test case gives the number of classes in this diagram, N. The classes are numbered from 1 to N. N lines fo www.acmicpc.net 구글 Code jam에 출제된 문제이다. 그래프의 한 노드에서 시작해서 다른 노드에 도착하는 경로의 가짓수가 최..
1주차 [포인터]
·
📚Algorithm/C 언어
컴퓨터가 정보를 저장하는 방식 컴퓨터는 기본적으로 bit단위로 정보를 저장한다. (8bit = 1byte) int a = 1024를 컴퓨터가 저장한다고 가정하자. 1024는 2의 10제곱이므로 1바이트(8비트 = 256)의 크기를 넘어간다. 따라서 옆의 메모리까지 연속하여 사용하게 된다. 그림을 보면서 이해해보자. 컴퓨터에는 메모리가 있고, 메모리마다 주소값이 있다. 만약 a를 저장한다면, 메모리공간이 총 4칸이 필요하게 된다. 주소값은 컴퓨터의 메모리 안에서의 실제 위치를 가르킨다. 우리는 포인터를 이용해 직접 그 데이터에 접근할 수 가 있다. 1024처럼 여러 공간을 차지한다면, 여러 메모리공간의 주소값의 가장 첫번째 부분을 가르킨다. 예시에서의 주소값은 100이 된다. 포인터 변수 포인터 변수를 선..
요플레에
Codio: 컴퓨터 학부생의 인생이야기