본문 바로가기

배움의공간(學)69

Stack overflow survey https://survey.stackoverflow.co/2022/#section-employment-employment-status Stack Overflow Developer Survey 2022 In May 2022 over 70,000 developers told us how they learn and level up, which tools they’re using, and what they want. survey.stackoverflow.co 2023. 1. 2.
[DP] SOLID 원칙 좋은 설계란 시스템에 새로운 요구사항이나 변경사항이 있을 때, 영향을 받은 범위가 적은 구조를 말한다. SOLID 원칙이란 객체지향 설계에서 지켜줘야 할 5개의 원칙(SRP, OCP, LSP, DIP, ISP) 를 말한다. 1. SRP (Single Reponsibility Principle, 단일 책임 원칙) - 객체는 단 하나의 책임만 가져야 한다는 원칙 - 응집도를 높게, 결합도(의존성)를 낮게 2. OCP (Open Closed Principle, 개방 폐쇄 원칙) - 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다는 원칙 - 변경되는 것이 무엇인지에 초점을 맞춘다. - 자주 변경될 수 있는 내용은 수정하기 쉽게(Open) 설계해야 하고, - 자주 변경되지 않는 내용은 수정에 영향받지.. 2022. 12. 22.
[DP] GoF (Gang of Four) 생성 패턴 (Creational Pattern) - 객체의 생성(creation)과 관련된 패턴 ⇒ 객체의 인스턴스 과정을 추상화하는 방법 - 객체의 생성과 참조 과정을 캡슐화 ⇒ 객체가 생성/변경 시 프로그램 구조에 영향을 받지 않도록 함 ⇒ 코드 유지를 쉽게 함 (유연성 높임) - 범위: . 클래스 패턴: 객체 생성을 서브클래스에 위임하여 캡슐화 함 ⇒ Factory Method . 객체 패턴: 객체 생성을 다른 객체에 위임함 ⇒ Abstract Factory: 인터페이스를 통해 연관된 객체들을 그룹으로 표현 ⇒ Builder: 복합 객체의 생성과 표현을 분리하여 동일한 생성 절차에서도 다른 표현 결과를 만들어 낼 수 있음 ⇒ Prototype: 원본 객체를 복사함으로써 객체를 생성함 ⇒ Single.. 2022. 12. 22.
영어를 유창하게 말하는 방법 Tips for Speaking English Fluently 더 잘 듣는 법을 배우세요 일반 동사를 구 동사로 대체하세요 영어에 대한 열정을 가지세요 모든 사람에게서 배우려고 노력하세요 좋아하는 인물이나 대중 연설가에게 배우세요 어린이 만화를 보세요 말하기에만 집중하지 마세요 컴퓨터/휴대폰의 언어를 변경하세요 상황에 맞는 자연스러운 답변을 배우세요 뉴스를 따라 하세요 녹음하고 다시 들어보세요 특별한 상황에서 말해보는 연습을 해 보세요 영어를 재미있게 배우세요 - 출처: English Speaking 영어 스피치 잘하는 방법3-phrasal verbs, 만화, 뉴스 활용하기 등 안녕하세요~ 영어스피킹,영어말하기 잘하는 방법 Tips2 -패러프레이징 등 유용한 방법에 이어 English S... blog... 2022. 12. 9.
if(kakao) dev2022 을 보며 카카오 개발자 컨퍼런스 중 모바일 얼굴인식 SDK 개발에 대한 세션이 있었는데 Core 라이브러리를 C++ 로 구현했다는 점과 이를 이용해 멀티디바이스에서 접근가능하게 했다는 점. 그리고 하나의 기능을 구현하면서 어떻게 문제를 해결하고 접근하면 좋을 지에 대해 너무나도 훌륭하게 설명되어 있는 것 같아 내용을 정리해 본다. ■ 모바일 얼굴 인식 SDK 개발 - https://if.kakao.com/2022/session/68 if(kakao)dev2022 함께 나아가는 더 나은 세상 if.kakao.com 우선 기존 기술들을 아우르는 지식을 이용해 타겟 디바이스에 최적화된 언어를 선별 및 변환하고, CPU 아키텍쳐 특성을 이용하여 Neon SIMD (Single Instruction Multiple Dat.. 2022. 12. 8.
[스크립트] 미스터선샤인 01 여러번 돌려본 미스터 선샤인을 영어 스크립트로 보면 공부가 될까? 모르겠다. -_- EPISODE 1 37: JUNE 10, 1871, 8TH YEAR OF GOJONG'S REIGN 46: They wanted permission to explore 47: the Ganghwa area. 51: Then, they accused us 52: of burning down a foreign ship 56: in Pyongyang back in 1866. 60: But today, 64: they wanted to establish 65: diplomatic ties with us. 69: What kind of a country is this America? 73: America is a country f.. 2021. 12. 5.
[백준] 2252-줄 세우기 [조건] - 시간 제한: 문항, 2초 - Stack: 128MB [문제] N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다. 일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오. - 학생의 수: 1 ≤ N ≤ 32,000 - 비교 횟수: 1 ≤ M ≤ 100,000 [접근법] 알고리즘은 기본 개념과 어떻게 문제에서 응용되는지를 알아야 한다. "순서가 있는 일을 순서에 맞게 나열한다" 는 기본 개념을 잊지 않았다면 본 시험에서 적용해 봤을텐데.. 아쉽기만 하다. [알고.. 2021. 4. 5.
[기출] 디자이너의 고민 [조건] - 시간 제한: 40문항, 1.5초 - Stack: 1MB [문제] 디자이너 조이는 가로 폭이 N인 화면의 배경 디자인을 의뢰 받았다. 서로 다른 가로 폭을 가진 K 종류의 배경 디자인 조각을 사용하여 디자인을 할 수 있는 방법이 몇 가지인지 찾아보아라. (답이 굉장히 클 수 있기 때문에 답을 1,000,000,007 로 나눈 나머지를 출력한다. - 화면 가로 폭: 1 ≤ N ≤ 50,000 - 조각 종류: 2 ≤ K ≤ 100 - 조각의 가로 폭: 1 ≤ A ≤ 1,000 - 각 디자인 조각의 가로 폭은 모두 다르다. - 각 디자인 조각은 여러 번 사용할 수 있다. [접근법] 1단계: 경우의 수. 즉 조합 문제로 접근하였다. 경우의 수를 백트래킹으로 구하고, 중복된 숫자를 카운팅하여 nCk 수.. 2021. 2. 10.
[그래프] 사이클 찾기 1. 사이클을 이루는 정점 확인 1) BFS bool findCycle(int here, int depth) { stack s; // 사이클을 만나면 while문 종료 while (visit[here] == 0) { s.push(here); visit[here] = depth++; here = node[here]; } // cnt: 사이클 크기 int cnt = depth - visit[here]; cycle[here] = true; // 사이클에 포함되는 정점들을 마킹 while (cnt > 0) { int item = s.top(); s.pop(); cycle[item] = true; cnt--; } return cycle[here]; } 2) DFS int cnt; bool findCycleDfs(.. 2021. 2. 5.
[기출] 산책하자 [문제] - N: 마을의 수 (2 ≤ N ≤ 100,000) - Ai: 이웃한 마을간 산책로의 수 (1 ≤ Ai ≤ 1,000,000,000 십억) - 산책을 출발하면 이웃한 마을로만 이동이 가능하며, 한번 지난 산책로는 다시 지나지 않는다. - 어떤 마을에서든 산책을 시작할 수 있고, 어떤 마을에서든 마칠 수 있다. [알고리즘] DP [Key Point] - 임의의 마을(Ai) 은 아래 세 가지 경우를 포함한다. . L[Back] + R[Back] : 좌우를 모두 다녀오는 경우 . L[Go] + R[Back] : 우측을 돌고 좌측으로 가는 경우 . L[Back] + R[Go] : 좌측을 돌과 우측으로 가는 경우 - 점화식: L[i][Back] = L[i-1][Back] + 짝수(r[i-1]) R[i][.. 2020. 12. 18.