2022년 1월 ~ 6월 월간 일지
·
Study log
2022년 상반기가 마무리되었다. 1월부터 2월까지는 현장 실습 및 휴가로 인해 공부 데이터가 좋지 않다. 3월부터 6월까지는 4학년 1학기를 진행했고, 종합설계프로젝트2, 고급문제해결, 인공지능, 컴퓨터그래픽스, 심리학의이해. 이렇게 16학점을 들었다. 학점은 교양 빼고 잘 나왔다. 무엇보다 4학점짜리인 종합설계프로젝트2를 A+ 받아서 기분이 너무 좋았다,, 방학 때는 정보처리기사 필기시험과 토익 시험을 치를 예정이며, 나머지 시간에는 결제해둔 스프링 인강과 1일 1코테문제를 풀 계획이다. 요약 총 공부시간 평균 공부시간 1월 24:42:20 00:47:49 2월 30:21:52 01:05:04 3월 100:13:22 03:13:58 4월 124:48:10 04:09:36 5월 144:57:41 04:..
[Python] 프로그래머스 : 신규 아이디 추천 (구현)
·
Algorithm
2021 카카오 신입 공채 https://programmers.co.kr/learn/courses/30/lessons/72410 🐥 이건 얻어가자 2단계 → 특정 특수문자들을 제거하는 방법 정규식 쓰는 굇수도 있던데 다른 해설 부분을 참고 ㄷㄷ 코드 def solution(new_id): answer = '' # 1단계 answer = new_id.lower() # 2단계 delete = "~!@#$%^&*()=+[{]}:?,/" for i in range(len(delete)): answer = answer.replace(delete[i], "") # 3단계 while answer.replace("..", "") != answer: answer = answer.replace("..", ".") # 4단..
HTTPS, SSL를 쉽게 알아보자 (천천히 읽으면 누구나 이해가능한,)
·
CS
🔐 HTTPS 그게 뭔데?S는 secure의 약자왜 HTTPS를 사용함?서버에 보내는 정보를 제 3자가 볼 수 없게 (비밀번호 같은거 서버로 보낼 때 가로채면 아찔)사이트가 진품인지, 즉 신뢰할 수 있는 사이트인지 검증 (기관으로 부터 검증된 사이트만 HTTPS 사용이 허가됨)암호화 방식대칭키 방식: 하나의 키를 가지고 암호화, 복호화문제점: 결국 한 번은 한 쪽에서 다른 쪽으로 대칭키를 전송해야하는데.. 대칭키를 해킹 당하면 말짱 도루묵비대칭키(공개키) 방식: 공개키로 암호화, 비공개키로 복호화 가능.비대칭키(공개키)대칭키의 문제점 때문에 비대칭키 방식을 사용하는 건 알겠어.그러면 비공개키가 클라이언트에 있어야 하는데, 네이버가 우리에게 준 공개키가 정품인지 확인..
[Python] 프로그래머스 : 신고 결과 받기 (해시)
·
Algorithm
2022 카카오 신입 공채 https://programmers.co.kr/learn/courses/30/lessons/92334 머리말 처음 엄청 쉽게 작성하고 10점 미만나와서 띠용? 30분 더 투자해서 솔브 dictionary 관련 자주 접하다보면 외워지겠지... 누적 신고 횟수 담으면서 불량 이용자 찾기 → 이메일 보낼 횟수 담기 순으로 처리하였다. 🐥 이건 얻어가자 리스트에서 중복을 중복을 제거하고 싶으면? list(set(리스트)) 해시맵을 구성할 때 key값이 정해져있다면? dict.fromkeys(리스트, 초기값) 코드 def solution(id_list, report, k): answer = [] report = list(set(report)) # set을 이용해 중복으로 신고한 내역 제..
[Python] 프로그래머스 : 문자열 압축 (구현, 완전탐색)
·
Algorithm
[2020 카카오 블라인드 채용] https://programmers.co.kr/learn/courses/30/lessons/60057 머리말 딱 구현 문제라고 느껴져 문제를 잘 해석하려고 노력하였다. 하지만, 문자열은 제일 앞부터 정해진 길이만큼 잘라야 합니다. 이 문장을 과소평가하여 첫 제출 때 틀렸다. 그리고 올바르게 짠 것 같은데 자꾸 72점이 나와 다른 사람의 코드를 참고할까 하다가 끝까지 디버깅하여 결국 풀어냈다. 코드 의식의 흐름대로 작성하여 코드가 난잡합니다 🤢 def solution(s): answer = [len(s)] for cut in range(1, len(s) // 2 + 1): # 자를 수 있는 범위 (최소 2개 최대 절반개) substrIdx = 0 cutstr = '' # ..
[Python] 백준 2357 : 최솟값과 최댓값 (세그먼트 트리)
·
Algorithm
https://www.acmicpc.net/problem/2357 머리말 solved 통계를 보니 자료구조 관련 데이터가 별로 없길레 관련 문제 중에 랜덤으로 하나를 골랐다. 문제 자체는 굉장히 평이해보였지만 n, m 범위가 1 이상 10만 이하 라는 점에서 아,, 이거 뭔가 트리 써야할 것 같은데? 라는 생각이 들었다. 어떤 트리 써야할 지 몰라 알고리즘 분류를 보니 세그먼트 트리 문제라고 한다. 세그먼트 트리 백준 블로그에 상세한 설명이 적혀있다. 세그먼트 트리는 어떠한 구간 내의 로직을 처리할 때 굉장히 효율적인 알고리즘이다. 트리의 노드에 범위라는 개념이 들어가고, 저장할 데이터는 로직에 따라 다르겠지만 이 문제에서는 해당 구간의 최솟값, 최댓값을 저장한다. 리프 노드(idx)라면 idx ~ id..
[Python] 백준 1162 : 도로포장 (다익스트라, DP)
·
Algorithm
https://www.acmicpc.net/problem/1162 머리말 오랜만에 9시에 일어나서 백준 문제를 풀어봤다. 일찍 일어난거 맞지..? 어떤 문제를 풀지 고민하다가 최근 수업시간에 다루었던 다익스트라 문제를 골랐다. 1시간 30분 고민해서 풀었다가 6%에서 바로 틀렸다. 허허 아직 부족하다. 나의 접근 방법 다익스트라 문제라는 것만 생각하고 어떻게 문제에 다익스트라를 녹여낼까 고민했던 것 같다. 모든 가중치를 priority queue에 넣고 크기가 큰 순으로 weight를 0으로 집어 넣고 다익스트라를 적용시켰다. 하지만, 조금만 생각해보면 당연히 잘못된 풀이법이다. weight가 큰 것을 포장 도로로 만들 필요가 없기 때문이다. 또한 'k번 이하'라는 조건에 주의를 기울여야 했을 것이다. ..
[오브젝트] 객체지향 프로그래밍
·
Books
"오브젝트: 코드로 이해하는 객체지향 설계" 책의 기록입니다. 객체지향 설계 설계란 코드를 배치하는 것이다. 설계를 구현과 떨어트려서 이야기하는 것은 불가능하다. 좋은 설계란, 오늘 요구하는 기능을 온전히 수행하면서 내일의 변경을 매끄럽게 수용할 수 있는 설계 왜? 요구사항이 항상 변경되기 때문임. 개발을 시작하는 시점에 구현에 필요한 모든 요구사항을 수집하는 것은 불가능에 가까움 코드를 변경할 때 버그가 추가될 가능성이 높기 때문 변경에 유연하게 대응할 수 있는 코드를 짜자.ᐟ 객체지향 프로그래밍을 향해 다음 두 가지에 집중하자 첫째, 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라. 클래스의 윤곽을 잡기 위해서는 어떤 객체들이 어떤 상태와 행동을 가지는지 먼저 결정 둘째, 객체..
squareyun
'분류 전체보기' 카테고리의 글 목록 (3 Page)