전체보기

🥇코딩테스트:Algorithm

[HSAT 4회 정기 코딩 인증평가 기출] 통근버스 출발 순서 검증하기

https://softeer.ai/practice/6257/history?questionType=ALGORITHM Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai처음 생각한 풀이과정은 for문을 세 번 쓰는 것 이었는데, O(n^3)이어서 시간초과가 발생하는 로직이었습니다.풀이과정i=0 을 기준으로 둡니다.이때 배열의 끝에서 부터 비교해야 시간복잡도를 줄일 수 있습니다.1과 3은 arr[0] 의 값 4보다 작으므로 1씩 누적해줍니다.   그 다음 원소 5는 arr[0] 보다 큽니다. 따라서 1을 누적하지 않고 그대로 2를 입력합니다.또한 arr[0]보다 5가 크기때문에, 스택정렬을 수행할 수 없는 경우 입니다.answer 에 누적된 값 2를 누적해줍니다. 그 다음 원소 2는 arr[..

🥇코딩테스트:Algorithm

[HSAT 1회 정기 코딩 인증평가 기출] 로봇이 지나간 경로

https://softeer.ai/practice/6275/history?questionType=ALGORITHM Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 풀이과정전체적인 풀이1. 탐색 경로의 시작점, 시작 방향 찾기2. 찾은 방향으로 dfs탐색하기2-1. 현재 방향으로 두 칸 이동할 수 있는지 확인2-2. 오른쪽으로 회전 시킨 뒤, 두 칸 이동할 수 있는지 확인2-3. 왼쪽으로 회전 시킨 뒤, 두 칸 이동할 수 있는지 확인  자세한 풀이시작점이 될 수 있는 좌표1. "#" 인 문자열2. 상, 하, 좌, 우 "#" 문자열이 하나 있어야 함 (두 개 이면 안됨) 위 두 가지 특징을 활용해서 모든 좌표에 대해 탐색하며 시작점을 찾았습니다.static void find_start(..

🥇코딩테스트:Algorithm

[프로그래머스] 상담원 인원

https://school.programmers.co.kr/learn/courses/30/lessons/214288 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이과정1. 유형 별 멘토의 숫자 조합을 다 구하기 (완전탐색)    1-1. 이때 n은 최대 20이며 k는 최대 5입니다. 아래 설명에 정리를 해놓았는데 n-1개(19)에서 k-1개(4)의 조합을 뽑는 모든 경우는 3,876개 입니다.    1-2. reqs의 길이는 최대 300이므로, 모든 조합에서 지연시간을 계산하는 경우는 3876*300 =1,162,800 입니다.    1-3. 즉 완전탐색 ..

🥇코딩테스트:Algorithm

[프로그래머스] 다리를 지나는 트럭

https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이과정1. 큐에 트럭을 올리기1-1. 올라갈 수 있으면 트럭의 무게를 offer1-2. 올라갈 수 없으면 0을 offer (가상의 트럭)2. 큐에서 트럭 빼주기큐의 size가 bridge_length와 같아진다면, 제일 앞의 큐는 다리를 건너갈 수 있므로 q.pollFirst()로 큐에서 빼줘야 합니다.3. truck_weights배열의 마지막 인덱스 트럭 고려하기마지막 인덱스 트럭을 큐에 넣는 경우..

💎백엔드 : Backend

@PathVariable, @RequestParam, @ModelAttribute

알게된 점1. @RequestParam을 통해서 받을 수 있는 데이터Query StringForm 형식 데이터 (html form)멀티파트 데이터 : multipart/form-data 형식의 요청에서 폼 필드의 데이터를 추출할 수 있음위 세가지를 다 받을 수 있습니다. 2. @RequestBody는 변환과정, @ModelAttribute은 맵핑과정@RequestBodyJSON, XML, Text등의 데이터가 적합한 HttpMessageConverter을 통해 파싱되어 Java 객체로 변환 됩니다.@RequestBody를 사용할 객체는 바인딩을 위한 생성자나, setter메서드가 필요 없습니다.단, 직렬화를 위해 기본 생성자와 데이터 바인딩을 위한 getter나 setter 중 1가지는 정의되어야 합니다..

💎백엔드 : Backend

로깅

로깅이 왜 필요할까?배포환경에서 동작 상태를 확인하기 위해서 필요합니다.기존의 System.out.println(), System.err.println()과 같은 플로우로는 한계가 있습니다.로깅이 기록하는 두 가지 사항서비스 동작 상태장애(exceptino || error)로깅 프레임워크SLF4JLogbackLog4jnlogSystem.out.println()보다 좋은 점출력 형식을 지정할 수 있음로그 레벨을 설정하여 남기고 싶은 로그를 별도로 지정할 수 있음개발 서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있다콘솔 뿐 아니라, 파일이나 네트워크등 로그를 별도의 위치에 남길 수 있음성능도 System.out.println()보다 좋음!로그레벨(Fatal..

🥇코딩테스트:Algorithm

[PCCP 기출문제] 2번 / 석유 시추

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/250136# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이과정각 열 마다 하나씩 아래로 내려가며 탐색을 수행합니다. 이때 이미 계산 된 영역은 다시 계산하지 않기 위해 메모리제이션을 해줘야 합니다. 메모리제이션을 위해 영역벌 번호를 할당하고 HashMap을 활용해 그 크기를 저장했습니다. 메모리제이션1. 석유인 영역(1)을 만나게 되면, 해당 영역의 크기를 bfs로 확인합니다. 이때, 영역별 번호 (저는 -1,-2,-3 ... 음수로 표..

🖥️컴퓨터과학:CS

OSI 7 Layer

1계층 (Physical Layer, 물리계층)직접 전선으로 전기적 신호가 전달되는 계층두 대의 컴퓨터가 통신하려면?모든 파일과 프로그램은 0과 1의 나열이다.결국 0과 1만 주고맏을 수 있으면 된다.0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려 보내고(encoding), 아날로그 신호가 들어오면 0과 1의 나열로 해석하여(decoding) 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈(module)1계층 모듈은 하드웨어적으로 구현되어 있음2계층 (DataLink Layer, 데이터링크계층)네트워크 기기들 간 어떻게 통신하는지 맞춰주는 계층1계층의 기술만으로는 여러대의 컴퓨터가 통신하지 못함스위치, 라우터 를 통해서 여러대의 컴퓨터가 통신을 할 수 있음같은 ..

mc.thd
'분류 전체보기' 카테고리의 글 목록