[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

💻 CS 193

[알고리즘 연습] 124나라의 숫자 (프로그래머스 lv2, 파이썬)

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 풀이 def solution(n): bs = "" while n: b = n % 3 n = n // 3 bs = "412"[b] + bs if not b: n -= 1 return bs 값을 3으로 나눠가며 그 나머지가 0일 경우 4, 나머지가 1일 경우 1, 나머지가 2일 경우 2를 추가한다. 나머지가 0이라는 것은 3으로 딱 나누어 떨어진다는 뜻이므로 몫에서 1을 빼주어야만 한다 나머지가 0일경우 몫에서 1을 빼준다는 포인트를 잡지 못해 많이 헤맸던 문제이다.

[알고리즘 연습] 실패율 (프로그래머스 lv1, 파이썬)

문제 [https://programmers.co.kr/learn/courses/30/lessons/42889] 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 풀이 def solution(N, stages): result = {} denominator = len(stages) for stage in range(1, N+1): if denominator != 0: count = stages.count(stage) result[stage] = count / denominator denominator -= coun..

Python으로 Mysql 다루기 (pymysql)

DB 사용자관리 사용자 생성 : mySQL 의 root 사용자를 모든 용도에 사용하지 말고, 적절한 권한을 가지는 사용자를 생성하여 사용하는 것이 바람직 예) create user 'db2020'@’%’ identified by 'db2020'; 권한 부여 : 특정 데이터베이스, 테이블 등에 읽기/쓰기 등의 권한을 부여할 수 있음 예) grant all privileges on university.* to 'db2020'@'%'; DB 응용프로그램 API 호출 순서 1. DB connection 설정 #Pymysql를 import import pymysql #DB connection 설정 conn = pymysql.connect( host='localhost', user='db2020', password..

[알고리즘 연습] 체육복 (프로그래머스 lv1, 파이썬)

문제 https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 풀이1 def solution(n, lost, reserve): set_reserve = set(reserve)-set(lost) set_lost = set(lost)-set(reserve) for i in set_reserve: if i-1 in set_lost: set_lost.remove(i-1) elif i+1 in set_lost: set_lost...

[Network] HTTP 메서드 기초

API URI 고민 Uniform Resource Indentifier. 즉, URI는 Resource를 관리하는 기준이라고 할 수 있다. 따라서 리소스를 기준으로 식별하는 것이 바람직하다. 예를 들어 '미네랄을 캐라' 라는 목적이 있다면 여기서 리소스는 '캐는 행위'가 아닌 '미네랄'이 되어야 한다는 것이다. '리소스'와 '리소스를 대상으로 한 행위'를 분리하여 생각해야한다. 물론 단순 리소스 기준으로 URI 구별이 어려울 경우에는 추가적인 식별이 필요하지만, 기본적인 원칙은 이렇다. HTTP 메서드 종류 GET: 리소스를 조회한다. POST: 요청 데이터 처리한다. PUT: 리소스를 대체하여 등록한다. 해당 리소스가 없으면 생성한다. PATCH: 리소스 내용을 부분 변경한다. DELETE: 리소스를 ..

[알고리즘 연습] 쇠막대기 (백준 10799, 파이썬)

쇠막대기 www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 접근 및 풀이 bar_razor = list(input()) answer = 0 st = [] for i in range(len(bar_razor)): if bar_razor[i] == '(': st.append('(') else: if bar_razor[i-1] == '(': st.pop() answer += len(st) else: st.pop() answer += 1 print(answer) 스택을 이용해 ..

개체와 속성

속성의 개요 속성의 개념 업무에 필요한 개체(엔티티)에서 관리하고자하는 더 이상 분리되지 않는 최소한의 단위 하나의 속성은 하나의 개체 타입으로 존재 속성명 / 도메인 / 선택성(not null, null) 으로 구성 속성 후보 선정 원칙 원시 속성(다른 속성에 의해 다시 재현될 수 없는 속성)으로 보이는 후보는 버리지 않는다 소그룹별로 후보군을 만들고 가장 근접한 개체에 할당 (핵심 개체를 대상으로 모델링을 실시했을 뿐, 아직 모든 개체가 드러나지 않았을 수 있다. 따라서 각 속성 후보들을 적절한 데이터 그룹으로 생성해두는 것이 필요) 속성의 명명 해당 업무에서 일반적으로 사용하는 용어 사용 서술식 속성명은 사용하지 않으며 명사형 사용 약어는 가급적 사용자제 개체 타입명을 속성명으로 사용해선 안됨 구체..

데이터베이스 모델링 개념

데이터베이스 설계 프로세스 데이터베이스 생명 주기 요구조건 분석 -> 설계 -> 구현 -> 운영 -> 감시 및 개선 감시 및 개선 과정에서 전 단계로 되돌아가 내용을 수정할 수 있다. 데이터베이스 설계 프로세스 요구사항 수집 분석 : 데이터베이스 요구사항 정리 개념적 설계 : 개념적 스키마 (ER 스키마) 완성 논리적 설계 : 논리적 스키마 (관계 데이터베이스 스키마) 완성, DBMS의 특성 고려, 관계 DBMS에서는 ER 스키마를 릴레이션들로 구성 정규화 : 정규화된 릴레이션들 물리적 설계 : 물리적 스키마 (릴레이션, 인덱스 등) 데이터 모델링 개념 데이터 세계 현실 세계의 개체를 개념적으로 모델링하여 개념적 구조를 만들고 해당 개념적 구조를 기반으로 데이터 모델링을 진행해 논리적 구조를 만든다. 그..

[알고리즘 연습] AC (백준 5430, C++)

AC https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 접근 방식 및 풀이 deque을 활용하면 그렇게 어려운 문제를 아니었는데, 생각해줘야할 것이 많아 귀찮았다. 그런데 그 귀찮은 것을 신경써주지 못해서 계속해서 제출에 실패했다. 우선 입력값이 깔끔하게 주어지지 않았고, 출력값도 일반적이지 않았다. #include using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while(t) { st..

[알고리즘 연습] 옥상 정원 꾸미기 (백준 6198, C++)

옥상 정원 꾸미기 https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net 접근 방식 및 풀이 처음엔 '각 빌딩이 볼 수 있는 빌딩의 수'에 집중해 문제를 해결하고자 했다. 하지만 그렇게하니 2중 for문의 비효율적인 코드만 계속 도출되었고, 이것이 정답일리 없다고 생각했다. 꽤 오랜시간 고민한 끝에 '각 빌딩을 볼 수 있는 빌딩의 수'에 집중하는 방식을 떠올렸다. 그를 구현하기 위해 stack에 각 빌딩의 크기를 넣어가며 자신보다 작은 빌딩(자..

반응형