본문 바로가기

전체 글

(25)
[백준] 17609번 회문 / C언어 https://www.acmicpc.net/problem/17609 백준 기준 난이도는 골드 5이며 생각하기에 유사회문에 대해 문제 해결 방식을 생각해 내면 그렇게 어렵지 않게 알고리즘 보다는 구현 쪽으로 푸는 문제인거 같다.  # 문제 이해 팰린드롬은 문자열이 짝수면 인덱스 기준으로 맨 처음과 맨 끝이 같고 그렇게 맨 처음은 인덱스 +1 / 맨 끝은 인덱스 -1이런식으로 하면 'abba' , 'baab' 와 같은 형식이 바로 팰린드롬이다. 홀수면 제일 중간 인덱스를 제외하고 나머지가 짝수처럼 앞 뒤가 같으면 팰린드롬이 된다. 자료구조를 배우면서 스택과 큐를 쓰면서 해본 기억이 있다.  하지만 이 문제에는 또 다른 조건식인 유사회문이 있다. 유사회문이란 어떤 문자열에서 문자 하나를 지우게 되면 회문이 되..
[C언어] 동적 할당? ( memory allocation ) ◎ 쓰게 된 계기 ◎  학원 코딩 알바를 하며 나는 c언어와 알고리즘을 가르친다. 한 학생이 나에게 물어봤다. 굳이 동적 할당을 안하고 배열을 써서 값을 배출하면 되는데 왜 굳이 동적할당을 쓰는 이유가 뭘까? 라는 의문이였다. 나 또한 동적할당을 배울 때 어떻게 쓰는지만 알고 사용하는 이유를 정확히 이해도 못하고 사용도 하지 않았다.    ▶ 동적할당이란? 프로그래밍 하는 중에 메모리 공간을 사용할 양만큼 할당하는 방법    ▶ 동적 할당이 정말 필요할까? 동적과 정적의 차이를 알아가며 동적할당의 사용 이유를 알아야한다. 정적할당을 하여 우리가 컴파일 하는 경우는 일반적으로 간단하다. 변수를 하나 지정해서 그냥 그 값을 출력하는 방법 자체도 정적이다. 즉, 프로그램이 실행 되기 전에는 메모리가 필요하기에..
[GUI / PYTHON] 1. PDF with Box ( 시작 // 완성 x ) PYQT란?pyqt는 , qt가 가지고 있는 컴퓨터 그래픽 디자인을 각각의 요소에서 효과적인 일을 Python을 이용해서 GUI 프로그램을 만들 수 있는 일종의 프레임워크이다. python에는 다양한 gui가 존재하는데 Tkinter, PySide등이 존재한다.  그치만 pyqt는 qt designer이라는 프로그램이 있기 때문에 시각적으로 이쁘게 만들거나 꽤 간단하게 설계할 수 있다. 이런 pyqt에는 꽤 다양하게 파일을 구성한다. 크게는 3가지가 존재한다고 생각한다. 1. 기능2. 시각3. 작동 이런 PYQT를 사용하기 위해서는 파이썬 디버거에서의 터미널이나 가상환경 설정을 통해 pyqt를 설치를 한다.  그럼 pyqt로 만들 준비가 완료된다. ( 그 밖에 다양한 tool과 사용 가능한 라이브러리들이..
[자유] 2. 단단해지기 벌써 3개월이라는 시간이 지나가 8월이라는 시간이 다가왔다. 3개월 동안 기쁘고 행복하고 때론 힘들고 흔들리기도 했다. 이번 년도는 저번에도 말했던 내 성격이 정말 많이 바뀜이 잘 느껴진다. 항상 거침 없던 성격은 사라지고 점점 생각도 많아지고 자꾸 주춤이게 된다. 나를 많이 알던 지인들도 좀 많이 성격이 변했다고 말한다. 주변 사람들은 말을 하는게 다 갈리지만 좋다는 방향이 많다. 하지만 가끔 악영향도 미치는거 같아서 이제는 티를 안내고 내색을 안하는 법을 익혀야겠다. 나의 본래의 모습이 바뀌었다는 것은 그만큼 다시 돌아가기 위해 단단해지고 안 좋은 버릇도 고쳐야겠다.  솔직히 말하면 왜 이렇게 자기 모습에 그렇게 신경을 쓰냐? 있는 그대로 살아가면 되는거지. 그냥 모르겠다. 이런것도 나대로 스트레스 ..
[백준 / 올림피아드 ] 28325번 호숫가의 개미굴 ( DP , greedy / c언어) 학교에서 친해진 형이 추천으로 코딩 학원 초,중등부 학원 알바를 하게 되었다. 그 중에 한 학생이 정보 올림피아드 1차 예선을 붙어서 2차 준비를 맡게 되었다. 중등부 정보 올림피아드 문제를 보는 순간 약간 당황스러웠던 점이 많았다. 일단 생각보다 난이도 더 높았다.  특히 시간 복잡도, 공간 복잡도를 하나 하나 체점을 하는 방식이다. 총 올림피아드 문제는 4문제로 2문제만 정확히 맞추면 되는 목적으로 가르치라고 명을 받게 되었다. 그 중 2번 문제인 이 문제는 난해한 구현 문제였다. 그래서 어떻게 최적의 알고리즘을 짜야할지 고민을 많이 했다.  백준 기준 골드 5의 난이도 DP 문제이다.  https://www.acmicpc.net/problem/28325  DP(Dynamic Programming)란..
[백준] 1260 DFS와 BFS (그래프 탐색 / C언어 ) 이번 학기( 2024년 1학기 ) 자료구조를 배우며 그래프 활용에 대해 어려움을 많이 겪었다.끝나고 몇 번의 복습을 거쳐서 이 문제에 적용하여 풀게 되었다. 그래프를 표현하기 위한 대표적인 자료구조 설정은 인접행렬과 인접리스트 방법이 있다.그래프 표현 후에 DFS( 깊이 우선 탐색 )와 BFS ( 너비 우선 탐색 )을 활용하여 푸는 문제이다. 백준 기준으로 실버 2인 문제이다. https://www.acmicpc.net/problem/1260    여기서 그래프 이론을 알기 전에 DFS와 BFS가 무엇인지부터 알아야 풀 수 있는 지식이 필요한 문제이다. EX ) 인접리스트 ( 그래프 탐색은 dfs bfs 둘 다 사용이 가능하다 ! ) DFS ( 스택 활용 / Depth First Search ) >> 임..
[백준] 1271번 엄청난 부자 / python (with c) c언어로의 이 문제 난이도는 절대 브론즈의 문제가 아니다. python으로 풀면 3줄이면 푸는 아주 쉬운 백준 기준 브론즈5 난이도의 문제이다. 나는 아직 알고리즘을 공부할 때 다른 언어에 미숙하다고 생각해서 c언어로 풀고 있다. 이 문제에서 잘 봐야하는 것은 바로 입력 값의 m과n은 10진수 정수이자 10^1000까지라고 범위가 지정되어있다. c언어에서 이런 10진수인 정수를 표현하는 int와long ( int  여기서 주어진 범위는 10^1000 이므로 최대를 넘어서서 오버플로우가 일어나 문제에서 오류로 지정한다. 난 처음에 단순하게 생각해서 풀었다가 3번정도 틀리니 내 자신을 의심했다.  그래서 문제를 제대로 읽고 보니 입력 값의 범위 지정이 c언어로 구현하기에 너무나도 많은 것을 생각 해야했다. ..
[백준]12789번 도키도키 간식드리미 (스택/ C언어 ) 스택 개념을 활용한 문제1,2월에 도전했던 문제지만 실패했다. 다시 도전해서 풀게된 문제 중 하나이다. 스택 개념을 모르고 푼다면 어렵지만 알면 응용해서 꽤 간단하게 구현 가능한 문제이다.난이도는 백준 기준으로 실버3이다.https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두www.acmicpc.net  - 스택(stack)?  스택의 개념을 처음 접하면 나오는 단어인 LIFO(Last-In-First-out) 후입선출 개념이다. 스택을 ..