전체 글

Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻‍❄️☁️
·Algorithm (PS)
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net union 은 visited 여부를 확인하기 위한 리스트이다. index는 while문을 중단시키기 위한 지점이 필요해서 만들었다. for 문 2번 돌면 인구이동을 각 칸에 대해 모두 진행했다는 것이므로 break 로 탈출한다. '인구이동' 즉 while문 한번씩 처음부터 끝까지 실행되는 횟수를 result 변수로 카운트하고 있다. Queue 가 다 비면 -> 연합 구성이 끝났다는 ..
·Algorithm (PS)
이번 문제는 구현하기 좀 까다로웠다 !! 2차원 배열을 제대로 연습할 수 있는 징한 구현문제이다 https://www.acmicpc.net/problem/1451 1451번: 직사각형으로 나누기 첫째 줄에 직사각형의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 직사각형에 들어가는 수가 가장 윗 줄부터 한 줄에 하나씩 M개의 수가 주어진다. N과 M은 50보다 작거나 같은 자연수이 www.acmicpc.net 1. 직사각형을 나누는 방법은 총 6개다 1) 세로로 3분할 2) 가로로 3분할 이렇게 6가지이다. 3) 전체 세로분할 후 가로분할 4) 전체 세로분할 후(R1, R3), 가로분할(R2) 5) 전체 가로분할 후(R1), 세로분할 (R2,R3) 6) 전체 가로분할 후 (R1, R2), 세로분..
코딩 문제 풀 때 굉장히 알아두면 유용한! 문자열을 다룰 때 쓰이는 join 함수 1. 형태 string.join(iterable) 여기서 string 에 들어가는 문자열은 구분자이다. 물론 "".join(iterable) 이렇게 빈 문자열을 붙일 수도 있다. 2. 예시 i) 문자열 리스트를 하나로 합치기 myNumber = ['1','2','3','4','5'] print("".join(myNumber)) ii) 공백 문자를 사이에 두고 문자열 리스트를 하나로 합치기 myNumber = ['1','2','3','4','5'] print("_".join(myNumber)) myStr = ["Hello", "My", "Name", "is", "Minjee"] print("!!!!!!".join(myStr)..
·Algorithm (PS)
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 재미있는 그래프 문제 !! 사실 처음에는 itertools의 permutations 함수를 사용해서 연산자들의 조합을 n-1개 모두 고르는 순열 리스트를 for문으로 돌리려고 했으나 시간초과가 떴다 ;; dfs로 풀면 시간초과 없이 풀 수 있다. 상하좌우를 돌듯이 사칙연산을 재귀호출해주는 것이다 i 는 인덱스이고 now는 현재 계산과정을 거치..
·Algorithm (PS)
https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net bfs에서 고려해야 할 점 1. 1초에 한 칸 앞으로 이동할 수 있으며, 현재 몇 초가 경과했는지를 알아야 한다. -> '초' 에 대한 데이터를 어떻게 기록/ 갱신할 것인가 ? 2. 바이러스 숫자가 낮은 순으로 정렬되어야 한다 이부분은 list에 바이러스 정보를 저장할 때 (virus, 시간, x좌표, y좌표) 로 저장해서 sort() 함수를 사용하면 맨 첫번째 vi..
·Algorithm (PS)
https://www.acmicpc.net/problem/10992 10992번: 별 찍기 - 17 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net n = int(input()) print(" "*(n-1) +"*") for i in range(2, n+1): if i == n: print('*'*((i*2)-1)) else: print(" "*(n-i) +'*' + ' '* (2*(i-1)-1) + '*')
·개발일기
기계식 키보드를 사고 싶은 내가 가장 고민중인 k8과 k3 retro 를 비교하면서 키크론 기계식 키보드에 대해서 알아보는 포스팅이다. 현재 이 로지텍 블루투스 키보드를 사용중이다. 가볍고, 영문자판에 핑크컬러 ! 디자인 역시 마음에 든다. 휴대용으로는 참 괜찮은데 , 문제는 타건감이 별로이고 가끔씩 키 입력이 자꾸 먹는다 ㅠㅠ 그래서 로그인할 때 비밀 번호 칠 때 너무너무 불편하다 !! 그리고 네이버 블로그의 문제인지, 내 키보드의 문제인지 모르겠지만, 특히 네이버 블로그에서 글을 쓰면 입력이 자꾸 먹어서 너~~~무 불편하다 !! 그래서 입력이 자꾸 먹으니까 습관적으로 쾅쾅 치게 되고, 손이 아프다 ㅠㅠ 라는 여러가지 이유를 들면서 사실 그냥 아무이유없이 예쁘고 타건감이 기대되서 사고싶다 ㄱ- 기계식 ..
1. 디자인 패턴 소프트웨어 공학의 소프트웨어 설계에서 공통적으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 개발의 효율성과 유지보수성 등의 품질이 높아지며, 프로그램의 최적화에 도움이 된다. 2. 디자인 패턴 구성 요소 패턴의 이름 문제 및 배경 솔루션 사례 결과 샘플 코드 3. 디자인 패턴 유형 1) 목적 : 생성 / 구조 / 행위 생성 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴 구조 : 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다루는 패턴 행위 : 클래스나 객체들이 상호 작용하는 방법과 역할 분담을 다루는 패턴 2) 범위 : 클래스 / 객체 4. 디자인 패턴 종류 i ) 생성 패턴 Builder 생산 단계를 캡슐화 ..
minjiwoo
MJ workspace