Python 으로 간단한 콘솔 프로그램인 ATM 프로그램을 만들어 보았다 ! 예전에는 C++ 으로 객체지향프로그래밍 수업에서 비슷한 은행 프로그램을 만든 적이 있었는데.. 그때보다는 확실히 파이썬으로 하니까 금방금방 만들어진다. 간단하게 잔액 확인/deposit/withdraw 기능을 두고 설계했다. 비밀번호 바꾸기 기능, 계좌번호 찾기 기능도 추가했다. class를 좀 잘 써서 예쁜 객체지향 프로그래밍을 하고 싶었으나, Account class 만든거 이외에 class를 활용을 안했다. 개선한다면 Controller class 정도 만들어서 계좌 작업 처리 관련 함수들 (deposit, withdraw...) 을 묶을 수 있겠다. 객체지향.. 말로는 쉬운데 직접 설계하면 아직도 쉽지가 않다 ㅋㅋ 오랜만..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻❄️☁️https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net 1. 치킨집을 두개 지정해주어야 한다. 이를 combination을 이용하여 간단히 구현했다. 2. 치킨집 2개를 뽑는 모든 조합을 brute force로 확인한다. 그리고 왕복거리가 최소가 되는 경우를 구한다. 3. bfs는 치킨집 2개를 start node라고 가정하고, 치킨집에서 각각의 노드들을 방문하며 왕복거리를 계산했다. 4. answer 를 sort해서 가..
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr dfs로 풀어야 겠다고 떠올렸다 그런데 보통 입력이 숫자로 주어졌고, 나는 그래프를 표현할 때 주로 이차원 리스트를 사용했는데 각각의 node에 해당하는 공항 이름들이 문자열이다보니, 처리를 쉽게 하기 위해서는 dictionary 자료형이 낫다고 생각했다. 내가 좋아하는.. 쓰기 편한 defaultdict으로 초기화 없이 우선 정의해주고, for 문에서 각각 그래프와, visited 딕셔너리에 F..
https://www.acmicpc.net/problem/15927 15927번: 회문은 회문아니야!! 팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을 www.acmicpc.net 애드혹 유형이라고 한다 1. ZZZ 같이 같은 문자로 연속되는 문자의 경우 어떻게 문자열을 슬라이싱하더라도 펠린드롬 문자열이므로, -1을 return 한다. 1 의 경우에 해당되지 않는다면, 해당 문자열이 펠린드롬인지 아닌지를 판단해서 쉽게 답을 얻을 수 있다. 2. 펠린드롬 문자열인 경우 : (전체 문자열 길이-1)를 return 한다. 3. 펠린드롬 문자열이..
https://www.acmicpc.net/problem/13022 13022번: 늑대와 올바른 단어 첫째 줄에 단어가 주어진다. 단어는 w, o, l, f로만 이루어져 있으며, 길이는 50을 넘지 않는다. www.acmicpc.net .... 광광 하 엄청난 삽질 후에 풀었다 반례를 빠르게 찾아내서 예외케이스를 처리해주는게 중요한 문자열 패턴 문제이다.. 1. f를 기준으로 문자열을 잘라서 검사한다 ex) wolfwolf -> [wolf, wolf] 2. 자른 문자열의 w, o, l, f 알파벳 개수를 세서 각각 알파벳 개수가 동일한지 확인한다. 3. 동일하다면 정규표현식을 사용해서 w+o+l+f (w,o,l,f가 각각 한번 이상 등장하고 순서대로 등장하는지 확인)를 확인해준다. 4. 그런데 이렇게 했..
클라우드 아키텍처 : 어플리케이션을 실행할 기반이 되는 클라우드 구축에 필요한 구성 및 요소를 연결하는 작업 PaaS : Platform as a Service , 서비스로서의 플랫폼 관련 인프라 또는 플랫폼을 구축하고 유지 관리할 필요 없이 어플리케이션을 개발할 수 있게 한다. 어플리케이션 소프트웨어 플랫폼이 제 3사를 통해 제공되는 클라우드 컴퓨팅의 한 형식이다. IaaS : Infrastructure as a Service 서비스 제공 업체가 고객을 대신해 클라우드를 통해 인프라를 관리. 인프라를 대여하는 개념 SaaS : Software as a Service 제공업체가 사용자를 대신해 어플리케이션을 관리 개별 컴퓨터 로컬에 어플리케이션을 설치할 필요도 없다. on-premise infra : o..
https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 투포인터 문제에 꽂혀있다 !! 핵심은 left 포인터와 right 포인터가 가리키는 용액의 특성값이 0보다 작으면 left 포인터를 오른쪽으로 한칸 움직이고, 0보다 크면 right 포인터를 왼쪽으로 한칸 움직여서 0에 가깝게 만드는 것이다 투포인터 문제는 포인터를 움직일때의 기준을 찾는 것이 핵심인 것 같다 # 2470 두 용액 n = int(input()) d..
https://www.acmicpc.net/problem/2615 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 처음에는 단순하게 대각선 4방향 + 상하좌우 4방향 총 8방향을 모두 체크해야겠다고 생각했으나, 1.오목의 특성상 그럴 필요없이 총 4가지 방향만 체크해주면 된다 ⇩, ⇘, ⇗ ➔ 하, 우하, 우상, 우 네가지 방향을 확인해주면 된다. dx = [1, 1, -1, 0] # 하, 우하, 우상, 우 dy = [0, 1, 1, 1] 2.항상 좌측, 위 부터 시작하도록 하여 연속된 5개 오목 중 가장 왼..