본문 바로가기

전체 글

(137)
[PGR] 2023 KAKAO BLIND RECRUITMENT - 표 병합 📌 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 정사각형의 2차원 배열 속 좌표를 갖는 표의 셀의 병합과, 병합 해제, 값 변경 등의 구현을 해야하는 문제였습니다. 문제의 설명 중, 인접하지 않은 두 셀에 대해서도 병합이 가능하다는 설명이 있고, 두 점에 대하여 병합한다는 점에서 Union-Find 알고리즘 즉 서로소 집합 알고리즘이 적용될 수 있는 문제였습니다. 제약조건 1 ≤ commands의 길이 ≤ 1,000 c..
[PGR] 2019 카카오 개발자 겨울 인턴십 - 호텔 방 배정 📌 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/64063 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 고객에게 호텔 방 번호를 배정할 때, 이에 최적화된 알고리즘을 통해 시간 복잡도를 개선해야 통과할 수 있는 문제였습니다. 이번 문제에서 '최대 방번호'를 찾기 위해 사용한 알고리즘은 서로소 집합, 즉 유니온 파인드 알고리즘을 사용했습니다. 소스 코드 자체는 코드량이 적어 간단한 편이나, 그 원리에 대해 설명해보도록 하겠습니다. 문제에서 주어지는 파라미터는 두 종류 입니다. ..
[회고] 하루 1분, 프로젝트 회고록 들어가기 전에.... 안녕하세요, 하루 1분 수학 본능의 개발자 1-hee 입니다. 하루 1분을 어떻게 개발했는지, 앞으로 어떻게 할 예정인지 스스로 기록하며 되돌아보는 시간을 갖고자 회고록을 작성하게 되었습니다. 양식은 어떻게 할까 고민하다가, 스스로 질문하고 답변하는 식으로 구성해보기로 했는데, 목차나 내용이 다소 산만하더라도 너른 이해를 바랍니다. 🌐 하루 1분 Link https://play.google.com/store/apps/details?id=co.kr.onedaymath Q. 하루 1분을 간단하게 소개한다면? '하루에 1분만 사칙연산 연습을 해서 수학적 암산 능력을 트레이닝해 보자' 이 한 줄의 아이디어로부터 시작한 토이 프로젝트입니다. 제삼자에게 하루 1분은 여러 명의 개발자가 참여하는..
[CS BASIC] 소프트웨어 아키텍처 (Software Architecture) 소프트웨어 아키텍처란? 요구사항을 기반으로 개발 대상 소프트웨어의 기본 틀(뼈대)를 만드는 것이다. 다수의 이해관계자가 참여하는 복잡한 개발에서 상호이해, 타협, 의사소통을 체계적으로 접근하기 위한 것이다. 전체 시스템의 전반적인 구조를 체계적으로 설계 하는 것이다. 소프트웨어를 구성하는 컴포넌트들의 상호작용 및 관계, 각각의 특성을 기반으로 컴포넌트들이 상호 유기적으로 결합하는 소프트웨어의 여러 가지 원칙들의 집합이다. 설계 및 구현을 위한 구조적/비구조적인 틀(Frame)을 제공한다. 소프트웨어 아키텍처 시스템의 품질 속성 ① 성능, ② 사용 운용성, ③ 보안성, ④ 시험 용이성, ⑤ 가용성, ⑥ 변경 용이성, ⑦ 사용성 소프트웨어 아키텍처 특징 ① 간략성 : 이해하고 추론할 수 있을 정도 간결해야 ..
[CS BASIC] 모듈(Module) 모듈(Module)이란? 전체 프로그램에서 어떠한 기능을 수행할 수 있는 실행 코드를 의미 자체적으로 컴파일 가능, 다른 프로그램에서 재사용 가능 시스템 개발 시 기관고 노동력을 절감할 수 있다. 모듈의 독립성은 결합도와 응집도에 의해 측정된다. 서브루틴 = 서브 시스템 = 작업 단위 변수의 선언을 효율적으로 할 수 있어 기억 장치를 유용하게 사용할 수 있다. 모듈마다 사용할 변수를 정의하지 않고 상속하여 사용할 수 있다. 각 모듈의 기능이 서로 다른 모듈과의 과도한 상호작용을 회피함으로서 이루어지는 것을 기능적 독립성이라고 한다. 여러 기능 및 프로그램에서 공통으로 사용할 수 있는 모듈(예-날짜 처리를 위한 유틸리티 모듈 등) 결합도 서로다른 두 모듈간의 상호 의존도로서 두 모듈간의 기능적인 연광 정도..
[CS BASIC] 사용자 인터페이스(UI, User Interface)의 설계 사용자 인터페이스(UI, User Interface)의 설계 단계 ① 문제 정의 : 시스템의 목적과 해결해야할 문제를 정의한다. ② 사용자 모델 정의 : 사용자 특성을 결정하고, 소프트웨 작업 지식 정도에 따라 초보자, 중급자, 숙련자로 구분한다. ③ 작업 분석 : 사용자의 특징을 세분화하고 수행되어야 할 작업을 정의한다. ④ 컴퓨터 오브젝트 및 기능 정의 : 작업 분석을 통하여 어떤 사용자 인터페이스에 표현할지를 정의한다. ⑤ 사용자 인터페이스 정의 : 모니터, 마우스, 키보드, 터치스크린 등 물리적 입-출력 장치 등 상호작용을 위한 오브젝트를 통해 시스템 상태를 명확히 한다. ⑥ 디자인 평가 : 사용자 능력, 지식에 적합한가? 사용자가 사용하기 편리한가? 등의 평가를 의미하며, 사용성 공학을 통하여 ..
[CS BASIC] 사용자 인터페이스(UI, User Interface)와 표준 및 지침 사용자 인터페이스(UI, UserInterface)란? 사람(사용자)과 사물 또는 시스템, 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체를 뜻한다. 인간과 컴퓨터 사이의 상호작용(HCI)에 필요한 화상, 문자, 소리, 수단을 의미 사용자 인터페이스는 사람들이 컴퓨터와 상호 작용하는 시스템이다. 사용자 인터페이스는 물리적인 하드웨어와 논리적인 소프트웨어 요소를 포함한다. 사용자 인터페이스는 크게 다음과 같은 수단을 사용한다. ① 입력 : 사용자가 시스템을 조작할 수 있게 한다. ② 출력 : 시스템이 사용자가 이용한 것에 대한 결과를 표시한다. ③ 삭제 : 시스템이 사용자가 잘못 조작한 것을 삭제한다. 사용자 인터페이스를 판..
[CS BASIC] UI(User Interface) 표준을 위한 환경 분석 사용자 경향 분석 기존/현존 UI 트렌드를 숙지하고 현재 UI의 장단점을 작성한다. 사용자의 요구사항을 파악하고 쉽게 이해 간으한 기능 위주로 기술 영역을 정의한다. 기능 및 설계 분석 ① 기능 조작성 분석 사용자 편의를 위한 조작에 관한 분석을 확인한다. ex) 스크롤 바 지원 가능 여부, 마우스 조작 시 동선 확인 ② 오류방지 분석 조작 시 오류에 대해 예상 가능한지 확인한다. ex) 의도치 않는 페이지 이동, 기능 버튼의 명확한 구분 가능한지 확인, 기능 버튼 이름이 사용자의 조작과 일치하는지 등 ③ 최소한의 조작으로 업무 처리 가능한 형태 분석 작업 흐름에 가장 적합한 레이아웃인지 확인 ex) 기능 특성에 맞는 UI 확인 및 및 조작 단계 최소화와 동선 단순 여부 확인 ④ UI의 정보 전달력 확인..