본문 바로가기 메뉴 바로가기

동찬 코드 일지

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

동찬 코드 일지

검색하기 폼
  • 분류 전체보기 (90)
    • 개발자 성장 (5)
    • 자바스크립트 (19)
    • 자바 (8)
    • 백엔드 (1)
    • 프로젝트 (10)
      • 파일 내용 탐색 프로그램 (7)
      • 민원 처리 웹 서비스 (3)
    • C++ (11)
      • 자료구조 알고리즘 (4)
      • 알고리즘 문제 (1)
    • 파이썬 (30)
      • 그리디 (3)
      • DP (4)
      • 그래프 (6)
      • 다익스트라 (6)
      • 삼성 SW 역량 테스트 기출 문제 (2)
      • 완전탐색 (4)
  • 방명록

전체 글 (90)
재귀

함수가 return 되기전에 그 함수를 다시 재 호출 하는 것을 재귀 라고 한다. 재귀는 나중에 DFS (깊이우선탐색) 알고리즘과 DP 등과 연결되어 있어서 개념을 잘 숙지해야하며 활용할 수 있어야 한다. 가장 대표적으로인 재귀함수와 팩토리얼 을 함수의 재귀 호출로 값을 구해보는 시간을 가졌다. void recall(int n) { if (n == 1) { printf("%d end", n); return; } printf("%d\n", n); return recall(n - 1); } 기본적인 재귀 함수 int factorial(int n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } } 재귀함수는 재귀의 탈출조건인 base ca..

C++/자료구조 알고리즘 2023. 10. 11. 17:26
C/C++

이전 까지 나는 Python을 중점으로 자료구조/알고리즘 을 학습하며 백준 문제 풀이 위주로 학습을 이어 나갔다. 파이썬의 간결함과 편의성을 맛본 후 파이썬만의 매력에 빠졌다. 하지만 대부분의 소프트웨어의 핵심이 되는 언어는 C/C++ 라고 생각한다. 그리고 프론트엔드 분야에서는 내가 맞지 않는 다는 것을 체감하였다. C/C++ 을 마스터하고 자료구조와 알고리즘을 깊게 공부하기 시작해야겠다

C++ 2023. 10. 11. 01:17
유기농 배추 (실버2)

# 문제 https://www.acmicpc.net/problem/1012 입력 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 첫째 줄에는 배추를 심은 배추밭의 가로길이 M(1 ≤ M ≤ 50)과 세로길이 N(1 ≤ N ≤ 50), 그리고 배추가 심어져 있는 위치의 개수 K(1 ≤ K ≤ 2500)이 주어진다. 그 다음 K줄에는 배추의 위치 X(0 ≤ X ≤ M-1), Y(0 ≤ Y ≤ N-1)가 주어진다. 두 배추의 위치가 같은 경우는 없다. 출력 각 테스트 케이스에 대해 필요한 최소의 배추흰지렁이 마리 수를 출력한다. # 나의 풀이 전에 풀었던 Number of Island와 같은 문제다 그래프의 너비우선탐색 (bfs) 와 깊이우선탐색(dfs)를 ..

파이썬/그래프 2023. 10. 6. 21:29
Unique Paths

# 코테 인프런 강의 https://www.inflearn.com/course/%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%85%EB%AC%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC/dashboard 로봇이 m x n 격자 위에 있다 로봇의 처음 위치는 좌측 상단 모서리 grid[0][0] 에 위치해 있다 로봇은 우측 하단 모서리 grid[m-1][n-1]로 이동 하려 한다 로봇은 한번에 오른쪽이나 아래쪽으로만 움직일 수 있다. 두 정수 m과 n이 주어졌을 때, 로봇이 우측 하단 모서리에 도달할 수 있는 가능한 unique paths의 수를 반환하라 제약 조건 (1 = 0: unique_paths += dfs(r, c-1) memo[(r,c)..

파이썬/DP 2023. 10. 5. 21:03
LCS (골드5)

# 문제 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력 첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. # 나의 풀이 - 접근 먼저 완전탐색으로 접근하였지만, 방법이 생각나지 않았다. 유튜브 강의를 통해 학습하였다. bottom - up 방식으로 2차원 dp 테이블을 채워나가는 것이 핵심이다. 여기서 처음으로 배운 것 1. 부분 문자열을 다른 표현방식으로..

파이썬/DP 2023. 10. 5. 20:06
1774번 수 묶기 (골드4)

# 문제 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자신)를 묶는 것은 불가능하다. 그리고 어떤 수를 묶게 되면, 수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다. 예를 들면, 어떤 수열이 {0, 1, 2, 4, 3, 5}일 때, 그냥 이 수열의 합을 구하면 0+1+2+4+3+5 = 15이다. 하지만, 2와 3을 묶고, 4와 5를 묶게 되면, 0+1+(2*3)+(4*5) = 27이 되어 최대가 된다. 수열의 모든 수는 단 한번만 묶거나, 아니면 묶지 않아야한다. 수열이 주어졌을 때, ..

파이썬/그리디 2023. 10. 4. 19:36
참조 형식 멤버 초기화

클래스의 맴버 변수는 참조 형식으로 선언할 수 있다. 참초자는 반드시 선언과 동시에 초기화 해야한다. 기억할 것 참조형 멤버는 반드시 생성자 초기화 목록을 이용하여 초기화 한다. #include using namespace std; class CRefTest { public : //참조형 멤버는 반드시 생성자 목록을 이용하여 초기화 CRefTest(int &rParam) : m_nData(rParam) { }; //CRefTest( int rParam) : m_nData(rParam) { }; //이 코드는 선언과 정의가 아니다. 인스턴스를 이용하여 연산한 것에 불과 //함수의 매개변수는 함수 내부의 자동 변수와 같으므로 함수가 반환될 때 매개변수는 소멸 // 따라서 m_nData(rParam)는 사라질..

자바 2022. 9. 24. 23:51
생성자와 소멸자

생성자 construcor 소멸자 Destructor 는 클래스 객체가 생성 및 소멸 될때 "자동으로" 되는 함수이다. 두 함수의 가장 큰 특징 반환값이 없다. 함수이름이 클래스와 같다. (소멸자는 앞에~가 붙는다) 디폴트 생성자 Default constructor 클래스 제작자가 생성자와 소멸자를 기술하지 않아도 컴파일러가 자동으로 만들어 넣어준다. 즉 생성자와 소멸자가 없는 클래스는 없다. 객체가 생성되는 시점에 생성자 생성 메인함수의 실행이 끝나면 자동으로 소멸자 실행 여기서 C++가 C와 다른점 C로 작성된 프로그램은 main()함수가 가장먼저 호출됨 C++은 전역 변수로 선언한 클래스의 생성자가 main()함수보다 먼저 호출 생성자는 다중 정의가 가능하다. 소멸자는 다중 정의가 불가능하다.

자바 2022. 9. 20. 23:34
접근 제어 지시자

접근제어 지시자를 사용하는 이유 사용자의 접근을 제한하여 시스템의 오류의 가능성을 차단 하는 것이다. 예를들어 스피커의 볼륨 수치의 최대수치가 제한되어 있는것 애플, 삼성의 스마트폰등의 제품을 분해를 규정상 차단하는것 = 사용자의 접근을 제한한다. C++의 접근제어지시자 public 맴버에 관한 모든 외부 접근이 허용 private 외부 접근뿐만 아니라 파생 클래스로부터의 접근까지 모두 차단, 클래스를 선언할 때 별도로 접근제어 지시자를 기술하지 않으면 private로 간주됨 protect 맴버에 관한 모든 외부 접근이 차단됨 단 , 상속 관계에 있는 파생 클래스에서의 접근은 허용. private 로 멤버변수의 접근은 차단되었지만 메서드를 이용하여 변수의 값을 변경할 수 있도록 할 수 있다. 즉 예를 들..

자바 2022. 9. 19. 23:00
객체 지향 프로그래밍

나는 항상 생각하는 것이 있다. '이유가 무엇일까?' 어떠한 행동 , 이론 , 정의든 그것이 존재하는 이유를 찾고자 한다. 이유를 찾으면 목적을 알 수 있고 목적의 유무로 그것을 대하는 태도가 바뀐다. 마찬가지로 사람들은 각자의 삶을 살아갈때 저마다의 목적과 이유가 있다. "나는 세상에 가치 있는 일을 하겠다." 이것이 내 삶의 1차적 목표이다. 현대 고도화로 발전된 사회에서 컴퓨터는 아주 중요한 역할을 한다. 그 컴퓨터의 많은 분야 중 왜 나는 프로그래밍을 배우고 있을까? 예전부터 나는 재미있는 게임을 만들고 싶었다. 프로그래밍을 하는것 자체가 내 꿈의 본질인 것이다. 그래서 나는 프로그래밍을 하고 있는 것이다. 서론이 길었다. 왜 절차지향적 프로그래밍을 뒤로하고 객체지향 프로그래밍을 하는 것일까? 객..

C++ 2022. 9. 13. 22:53
이전 1 ··· 6 7 8 9 다음
이전 다음
공지사항
  • 3학년 2학기 기말고사 기간
  • 3학년 2학기 중간고사 기간
  • 프로필
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • Git hub
  • 백준
TAG
  • 완전탐색
  • 파일 내용 찾기 프로그램
  • 자료구조
  • 재귀
  • 백준
  • dfs
  • 그래프
  • javascript
  • os모듈
  • 그래프 순회
  • Bottom-up
  • 알고리즘
  • 파이썬
  • 함수
  • dp
  • 골드5
  • 다익스트라
  • 메모리
  • 힙
  • deque
  • JSON
  • 브루트포스
  • BFS
  • 변수
  • 시뮬레이션
  • 덱
  • 그래프 탐색
  • 가중치 그래프
  • C++
  • 프로젝트
more
«   2025/09   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바