본문 바로가기

반응형

programming

(98)
[자료구조] - LinkedQueue 구현 (C++) 1. 개요 이번에 정리할 내용은 LinkedQueue에 관한 내용이다. Queue는 구현 방법에 따라 CircularQueue와 LinkedQueue 등으로 나눌 수 있는데 이 블로그에서는 LinkedQueue에 대한 설명만 진행할 것이다. 사실 Queue의 기능을 구현하는 방법은 정말 다양하지만 대표적인 두 방법으로 배열과 나머지연산을 활용하는 CircularQueue와 연결리스트로 구현하는 LinkedQueue가 있으니 CircularQueue도 꼭 공부해보기를 바란다. 2.이론 큐는 '나오는 방식이 조금 다른 스택' 이라고 생각하면 편하다. Stack과 같은 경우는 먼저 들어간 데이터가 가장 나중에 나오는 FILO 구조이지만, Queue와 같은 경우 가장 먼저 들어간것이 가장먼저 나오는 FIFO(F..
[백준 알고리즘] 2292번 - 벌집 1. 문제 및 예시 실행결과 수학 카테고리에서 문제를 풀기 전 문자열 카테고리와는 다른 종류의 겁이 들었던 기억이 난다. 코딩을 잘 한다는 것이 아직도 뭔지 모르겠다. 문법을 잘 알고, 에러를 만들지 않는 사람도 있고 수학적 기교로 코드수를 줄이거나 알고리즘을 잘 설계하는 사람이 있을 것이다. 전자와 후자 전부 대단하지만, 나는 이 모든 부류를 공부할 때 겁을 먹는 것 같다. 언젠가는 이런 겁도 안먹기를 바란다. 이번 문제는 규칙을 파악하는 것이 매우 중요한 문제이다.(모든 코딩문제가 그런 것 같지만......) 실제로 나는 이 문제를 위해 그림도 그렸다 ㅠㅠ 다음은 문제와 예시 실행결과이다. 출처: https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육..
[자료구조] - CircularDoubledLinkedList의 구현 (C++) 1. 개요 이번에 정리할 내용은 바로 Circular Doubled Linked List(원형 이중 연결 리스트) 이다. 드디어 객체지향 언어를 사용할 수 있게 되었다 ㅠㅠ 사실 OOP(객체 지향저) 적인 코드를 작성하는 회사에서는 이 OOP를 디자인하는 시간이 몇달이 걸린다고도 한다. 저번 글과 현재 작성하고 있는 글에 차이가 있다면 일주일동안 들은 객체지향 특강에서 배운 지식을 활용했다는 것이다. LinkedList를 C++로 작성하려고 해도 시도하지 못했지만, 이제는 C로 작성된 원형 이중 연결 리스트의 이론과 코드를 참고하여 C++로 구현하였다. 나름 뿌듯함을 느끼는 중이다. 2. 이론 사실 원형이중연결 리스트의 기능은 연결리스트와는 다르지 않다. 다만, 차이가 있다면 마지막을 찾는 연산을 하지 ..
C++를 활용한 오목게임 만들기(베타버전) - array 이차배열 구현(STL) 1. 개요 방학 때, 교수님께서 따로 진행하시는 특강을 듣게 되었는데 최종 과제로 제출한 프로그램을 올려볼까 한다. C++ 14버젼 이상의 문법을 설명해주시는 특강이었는데 STL 자료구조에 대해 자세히 배울 수 있었다. 하루에 6시간씩 일주일에 걸친 수업이었는데 체력적으로 버티기는 힘들었지만 이런 세상이 있었나 싶었다 ㅎㅎ. 사실 OOP적인 프로그램을 작성해야 했지만(상속, 가상 클래스) 하룻밤 만에 만들 수 있는 프로그램을 OOP스럽게 디자인하는 것은 쉽지 않았다 ㅠㅠ 결국 CLASS문법과 STL중 하나인 'array'를 사용한 절차지향적인 프로그램이 되어버렸다 ㅠㅠ 아직은 베타 버전이지만, 보수하는 과정을 끊임없이 이 블로그에 올리고 싶다. 2. 주요코드 사실 주요코드라고 하는 것도 부끄럽다. 반복문..
[C언어, Python] 논리 연산자와 자주 발생하는 실수! 1. 문제 이 문제는 백준 알고리즘 2941번과 관련된 문제이다. 문제를 보면 알겠지만, 나는 이 문제를 논리 연산자와 반복문 만으로 해결하고자 하였다. 혹시 문제가 궁금하신 분들은 아래의 링크로 들어가면 볼 수 있다. 문제: https://apape1225.tistory.com/30[백준 알고리즘] 2941번 - 크로아티아 알파벳1. 문제, 예시 시행결과 이번 문제는 나름 시간이 걸린 문제이다. 문법으로 틀린 문제가 아니라, 논리로 우류가 났기 때문에...... 사실 이런 문제도많이 틀려가면서 스스로 부족한 점을 알아가��apape1225.tistory.com 보면 알겠지만 논리 연산자에 괄호도 있고...... && 연산자를 맨 뒤에다 쓰고...... 복잡해 보이기는 하지만, 나름 시행착오를 통해 작성..
[백준 알고리즘] 2941번 - 크로아티아 알파벳 1. 문제, 예시 시행결과 이번 문제는 나름 시간이 걸린 문제이다. 문법으로 틀린 문제가 아니라, 논리로 우류가 났기 때문에...... 사실 이런 문제도많이 틀려가면서 스스로 부족한 점을 알아가려는 것에 목적이 있지만, 찾는데 꽤 오랜 시간이 걸렸다...... 결론 부터 말하면 논리 연산자 때문인데, 이 부분을 자세히 설명하는 새로운 글을 쓸 계획이다. 이 글에서는 문제 풀이 만을 설명할 것이다. 다음은 문제 및 예시 실행결과이다. 문제: https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- d..
[자료구조] - LinkedList의 구현 (C언어) 1. 개요 공부를 많이 했다고는 하지 못하지만, 나름 자료구조라는 과목에는 학교에서든(성적은 잘 모르겠지만 ㅠㅠ) 독학에서든 노력을 했다고 생각한다. 그러나 아직도 자료구조가 뭔지 모르겠다고 느껴질 때가 많다. 이번에 구현한 LinkedList는 바로 직전에 자료구조 카테고리로 작성한 글인 Stack과는 코드스타일이 조금 다른느낌일 수 있다고 생각한다. 다른 책을 참고하였기 때문이다...... ㅠㅠ 사실 Stack은 서적을 참고했다기 보다는 거의 나의 힘으로 작성한 것이지만 LinkedList의 경우는 서적을 참고하였다. 자료구조의 책을 한 세권정도 읽었는데(그중 하나는 학교강의) 한 자료구조에 해당하는 주요 연산의 기능을 해낼수만 있다면 코드는 조금씩 다르다는 것을 알게되었다. 결국 중요한 것은 자료구..
[백준 알고리즘] 1157번 - 단어공부 (strupr() 함수) 1. 문제 및 예시 실행결과 이번 문제에서 문제를 두번이나 틀렸다(내 정답률 ㅠㅠ) 사실 나의 잘못이기도 하다...... 컴파일 에러도 두번이나 발생하였는데 strupr() 함수 때문이었다. 차라리 이런 컴파일 에러는 구글을 통해 고칠 수 있지만, 오늘과 같은 논리 오류는 정말 머리를 아프게 한다...... 다음은 문제와 예시 실행 결과이다. 출처: https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제를 보면 대소문자를 구별하지 않는데, 이 부분을 처리할 때 컴파일 에러가 발생..