목록분류 전체보기 (141)
공부하는 스누피

https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 생각 과정 - 길이가 n인 문자열을 1개, 2개,,,, n개씩 끊어 문자열 리스트에 넣는다. - 다 넣은 후 리스트를 순회하면서 같은 문자열이 반복되는지 검사한다. - 반복이 유지되면 count를 늘리고, 종료되면 count한 값과 이때까지 중복이었던 문자열을 StringBuffer에 붙인다. - 반복하지 않는 경우는 count없이 StringBuffer에..
- webOS란? LG에서 제공하는 웹 기반의 스마트 디바이스 플랫폼으로, 웹 개발자도 쉽게 IoT 서비스를 구축할 수 있습니다. Raspberry Pi 4를 지원하고 있고 2018년부터 오픈 소스로 공개되었습니다. - webOS 이미지 빌드 webOS를 Raspberry Pi에 올리려면 이미지 파일이 필요합니다. pre-built 이미지를 제공하고 있지만, 사용자가 직접 빌드할 수 있습니다. pre-built 이미지는 다음 링크에서 다운로드할 수 있습니다. http://build.webos-ports.org/webosose/ Index of /webosose/ build.webos-ports.org - 이미지 파일 종류 qemux86 -> 에뮬레이터용 (ViretualBox에서 실행. Raspberry..

https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 생각과정 - 주어진 문자열에서 한 문자씩 읽어서 숫자인지 아닌지 확인한다. - 숫자를 char 단위로 받으므로 받을 때 버퍼에 append한다. - S, D, T 문자를 받을 경우 숫자 입력이 종료되었으니 버퍼를 비우고 점수를 배열에 저장한다. - 저장 위치는 index로, 점수가 새로 저장될 때마다 증가한다. - *, # 문자를 받을 경우 index-1위치에 해당하는 점수를 갱신한다. - * 문자는 이전 점수에게도 영향을 미치니 index가 0이 아닐 때만 index-2 위치를 갱신해준다. 구현 class Solution { pub..
1. 디자인 패턴 : 모듈의 세분화된 역할이나 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식. =>기본형 코드들이 포함되어 있음. => 패턴에 변형을 가하면 유사한 형태의 다른 패턴으로 변화됨. => 생성, 구조, 행위 패턴으로 분류할 수 있다. * 아키텍처 패턴과 차이점 아키텍처 패턴은 디자인 패턴보다 상위 수준의 설계에 사용되며, 전체 시스템의 구조를 설계하기 위한 참조 모델이다. 반면 디자인 패턴은 시스템의 컴포넌트들과 관계를 설계하기 위한 참조 모델이고, 몇몇 디자인 패턴은 아키텍처 패턴을 구현하는데 사용된다. 2. 생성 패턴 Creational Pattern : 객체의 생성과 관련된 패턴 => 유연성 향상시킴 - 종류 a. 추상 팩토리 Abstract Factory 인터페이..

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net 생각과정 - 벽을 3개 세우는 모든 경우의 수 구하기 => DFS - 벽 다 세우면 바이러스 퍼뜨리기 - 상하좌우로 퍼져나가는데, 감염된 칸에서도 퍼져나가야 한다 - 재귀함수 spread를 사용해서 감염된 칸의 상하좌우로 퍼져나가는데, 벽을 만나면 멈춘다. 이때 감염시킨 칸에서 spread 함수를 새로 호출시킨다. 다 퍼뜨리면 감염 지도를 return한다. - spread 종료 후 안전 영역을 검사한다. 구..
1. 모듈 : 모듈화를 통해 분리된 시스템의 기능. - 단독으로 컴파일이 가능 => 재사용 가능 - 기능적 독립성을 가지고 있음 => 다른 모듈과 과도한 상호작용을 배제함. - 모듈의 독립성은 결합도(Coupling), 응집도(Cohesion)에 의해 측정되며, 결합도는 독립성과 반비례하고 응집도는 독립성과 비례한다. 2. 결합도 Coupling : 모듈 간에 상호 의존하는 정도 (품질과 반비례) - 종류 a. 자료 결합도 Data Coupling 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도. (정수, 문자 ...) => 모듈 간 데이터를 매개 변수나 인수로 넘겨주고, 리턴값을 받는 방식이다. => 장점: 모듈 간의 내용을 알지 않아도 된다 (다른 모듈에 대한 변경 영향이 적음) b. 스탬프..

https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, �� www.acmicpc.net 생각과정 - 모든 경우의 수를 탐색해 최대 최소를 구해야 한다 => dfs - 계산할 때마다 연산자 개수를 감소시킨다. - 계산이 끝나면 최대 최소 인스턴스 변수와 비교한다. 구현 package baekjoon; import java.util.Scanner; public class b14504 { public int max = -1000..

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 생각과정 - for문을 구현할 때, r은 i 인덱스로, c는 j인덱스로 생각한다. - 현재 위치가 (i, j)라면 북쪽은 (i-1, j), 동쪽은 (i, j+1), 남쪽은 (i+1, j), 서쪽은 (i, j-1)이라고 본다. - 청소한 부분은 벽, 빈칸과 구분되어야 하니까 2로 정한다. - 청소하고 왼쪽으로 돌다가 앞에 빈칸있으면 움직인다. 빈칸(0)이 없으면 후진한다. 후진할 때 벽이 있으면 ..