전체 글 205

[Python][백준] 12865. 1로 만들기 2 / DP (S1)

🔗링크 :  https://www.acmicpc.net/problem/12865🗒️파이썬 코드 풀이N = int(input())INF = sys.maxsizedp = [INF]*(N*4)dp[0],dp[1] = 0,0for i in range(1,N+1): dp[i*3] = min(dp[i]+1, dp[i*3]) dp[i*2] = min(dp[i]+1, dp[i*2]) dp[i+1] = min(dp[i]+1, dp[i+1])dp = dp[:N+1]cur = Nlst = [N]for k in range(N,0,-1): if dp[k] == dp[cur]-1 and (k*3==cur or (k+1)==cur or (k*2)==cur) : lst.append(k) ..

C언어의 포인터 기본 개념

✨ C언어 포인터C언어의 포인터는 메모리 주소를 저장하는 변수이다.(변수나 배열의 값을 간접적으로 접근하고 조작하는 방식) 💡도대체 포인터는 왜 필요할까 ? 포인터를 사용하는 이유는 다음과 같다.  1. 포인터는 특정 변수나 데이터의 메모리 주소를 가리켜서 직접적으로 메모리 접근이 가능하다.2. 포인터를 사용하면 함수를 호출할 때 값을 복사하지 않고 주소를 전달하여, 메모리 낭비를 줄이고 직접 수정이 가능하다.3. 동적으로 메모리를 할당하여 프로그램의 메모리사용을 효율적으로 관리한다.  4. 복잡한 자료구조 (연결 리스트, 트리, 그래프 등 ) 동적 자료 구조 구현에 필수적이다. 💡그렇다면 왜 !! 이중 포인터가 필요할까 ? 1. 다차원 배열을 처리할때, 이중 포인터로 각 행을 동적으로 할당하거나 관..

C언어 2024.10.05

정글 7기 27, 28일차 / CS:APP 3장, 3주차 쪽지 시험, 배낭 문제 (알고리즘)

🐸  9월 30 일 / 27일차이날은 오전,오후는 하루종일 배낭 문제를 풀었고  저녁을 먹고나서CS:APP을 공부하였다.확실히 주말에 공부를 안하니 할게 정말 많이 밀린다... DP는 왠지 모르게 늘 새롭다 ㅠㅠ 계속 문제를 많이 풀어서 익숙해져야한다. (반드시!!)  [Python][백준] 12865. 평범한 배낭 / DP, 배낭 문제 (G5)🔗링크 :  https://www.acmicpc.net/problem/12865🗒️파이썬 코드 풀이N,K = map(int,input().split())lst = [(0,0)]dp = [[0] * (K+1) for _ in range(N+1)]for _ in range(N) : x,y = map(int,input().split()) lst.append((x,..

크래프톤 정글 2024.10.04

[Python][백준] 12865. 평범한 배낭 / DP, 배낭 문제 (G5)

🔗링크 :  https://www.acmicpc.net/problem/12865🗒️파이썬 코드 풀이N,K = map(int,input().split())lst = [(0,0)]dp = [[0] * (K+1) for _ in range(N+1)]for _ in range(N) : x,y = map(int,input().split()) lst.append((x,y))for i in range(len(lst)): w,v = lst[i] for j in range(1,K+1) : if j  1. 배낭 문제는 2차원 DP 테이블이 필요하다. (인덱싱을 편하게 하기위해 왠만하면 0을 추가 해준다. ) 2. (w,v) 무게와 가치를 입력받은 리스트를 만들어준다. 3. 입력받은..

리눅스 명령어 / VI 명령어 모음

✨ 자주 사용되는 리눅스 명령어 ls: 내 위치의 모든 파일을 보여준다.pwd: 내 위치(폴더의 경로)를 알려준다.mkdir: 내 위치 아래에 폴더를 하나 만든다.cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.cd .. : 나를 상위 폴더로 이동시킨다.cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기rm -rf [지울 것]: 지우기sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)   ✨ 자주 사용되는 VI 명령어  1.  Command modei 현재 커서 위치에 삽입 (입력모드로 넘어감)a 현재 커서 바로 다음위치에 삽입 (입력모드로 넘어감)o 현재 줄 다음 위치에 삽입 (입력모드로 넘어감)- 영문 ..

WEB/Backend 2024.10.03

SFTP 파일 전송 (VS Code 플러그인으로 원격 서버 파일 전송)

✨SFTP 란 ? SFTP (Secure File Transfer Protocol)은 안전하게 파일을 전송하기 위한 프로토콜로,원격 서버와 클라이언트 간에 데이터를 암호화하여 안전한 파일 전송을 보장한다.(기본적으로 SSH (Secure Shell) 기반으로 동작) STFP는 데이터 전송 과정에 모든 명령어가 암호화되어 일반적인 FTP보다 안전하다. SSH 기반이라 SSH의 포트 (기본적으로 22번)를 통해 통신하고,파일 업로드, 다운로드, 권한 변경, 삭제, 이동 등의 작업도 가능하다. 보통 로컬 파일을 원격 서버에 업로드, 다운로드, 동기화에 사용된다. FileZilla 같은 GUI 기반의 SFTP 클라이언트를 사용해도 되는데,이번 포스팅에서는 VS Code의 플러그인의 사용에 대해 작성한다.   A..

WEB/Backend 2024.10.03

정글 7기 24, 25, 26일차 / DP, 휴식

🐸  9월 27일 / 24일차 정글에서의 3주차 자리 배정이 나왔고, 금요일 아침에 정신없게 자리를 바꿨다. 그리고 새로운 팀원들과 어떤 식으로 스터디를 할 지 고민을 하였다.  이번 3주차에는 컴퓨터 시스템의 분량이 생각보다 많다.3장 전체를 해야되기 떄문에 할게 정말 정말 많다.... 우선 팀 코어 타임으로는 알고리즘을 중점적으로 할 생각이다. 방식은 짧게 20분정도 알고리즘 문제를 보고,어떻게 그 문제에 접근했는지 서로의 생각을 공유한다. 이 과정에서 내가 생각하지 못했던 인싸이트를 얻을 수 있다. 그리고 이 새로운 인싸이트로 다시 문제를 푼다.  이날은 알고리즘 위주로 학습을 하였고, 주로 DP 문제를 이해하는 것을 목표로 하였다 . DP 문제를 칠판에 적어두고, 점화식을 유도한다.칠판에 적는게..

크래프톤 정글 2024.10.02

[Python][백준] 9084. 동전 / DP, 배낭 문제 (G5)

🔗링크 :  https://www.acmicpc.net/problem/9084➕ 문제 풀기 전 먼저 동전 문제를 풀기 전에 아래 예시를 이해해보자.  1,2,3원으로 7원까지의 만들 수 있는 경우의 수이다.     (0)  (1)  (2)  (3)  (4)  (5)  (6)  (7)  1:  0     1    1    1     1     1    1    12:  0     1    2    2     3     3    4    43:  0     1    2    3     4     5    7    8 먼저 1원부터 시작한다. 오직 1원으로 1~7원을 만들 수 있는 경우의 수는 모두 1이다.이제 2원과 3원으로 가면 위와 같은 경우의 수가 나온다. (해당 경우의 수는 하나 하나 직접 찾아서 ..

[Python][백준] 1541. 잃어버린 괄호 / 수학, Greedy, 문자열 (S2)

🔗링크 :  https://www.acmicpc.net/problem/1541🗒️파이썬 코드 풀이import sysinput = sys.stdin.readlineS = input().split('-')lst = []for i in range(len(S)): lst.append(sum(list(map(int,S[i].split("+")))))rs = lst[0]for ls in lst[1:]: rs -= lsprint(rs) 1. 보통 입력은 split()으로 하는데, 이 문제의 경우 '-' 로 나눠준다.(한 번 빼기가 시작되면 그 이후 모든 숫자가 한꺼번에 빼주는 것이 최소 값을 만드는 최선의 선택) 2. 한번 '-' 로 나눠준 lst를 이번에는 '+' 로 나눠주고, int 형으로 바꾸면서..