[DevOps] CI/CD란..?
·
DevOps
0. 배경회사에서 참여하게 된 프로젝트로 인해 CI/CD를 공부 해야겠다는 생각이 들었다.프로젝트에서 나는 A 서비스를 제공하는 웹서버(간단하게 A서버라고하자)를 구축하고 수정해야 했다. ( 물론 내가 다하진 않는다. 나의 기여도는 개미 눈물만큼? )근데 A 서비스 서버는 대략 8개 ..? 정도 되는 서비스로 이루어져 있었다. (자세히는 모르지만 이게 MSA?)그래서 소스코드를 수정하고 테스트 서버에서 수정사항이 반영됐는지 확인하기 위해서는 1번 서비스에서 war 파일을 생성해서 옮기고…2번 서비스에서는 jar 파일을 생성해서 올리고…엔진엑스를 다시 실행시키고 ..어쩌구 저쩌구 하는 상당히 복잡한 과정 ,, 워드로 두, 세장이 작성될 만큼에 서버 구축 과정이 다시 수행되어야 한다.. ( 물론 생략하는 부..
[Docker] DockerHub에 이미지 올리기
·
DevOps/Docker
🐳이미지 저장소도커는 빌드한 이미지를 서버에 배포하기 위해 직접 파일을 복사하는 방법 대신 도커 레지스트리(Docker Registr)y라는 이미지 저장소를 사용한다.도커 명령어를 이용하여 이미지를 레지스트리에 push 하고 다른 서버에서 pull 받아 사용하는 구조로 git과 비슷하다고 생각하면 될 것 같다.도커 레지스트리는 오픈소스로 무료로 설치할 수 있고 설치형이 싫다면 도커(Docker Inc.)에서 서비스 중인 도커 허브Docker Hub를 사용할 수 있다.🐳Docker Hub도커 허브는 도커에서 제공하는 기본 이미지 저장소로 ubuntu, centos, debian등의 베이스 이미지와 ruby, golang, java, python 등의 공식 이미지가 저장되어 있다.일반 사용자들이 만든 이..
[Docker] Docker 권한 설정하기
·
DevOps/Docker
실행 환경Ubuntu 22.04🐳Docker 권한 설정Docker 에서 모든 도커 관련된 작업이 root 사용자에게만 권한이 허용되어 있기 때문에도커 명령어를 입력하기 위해서는sudo를 앞에 붙여주어야만 가능하다.이를 root 계정이 Host의 기본 유저에게 권한을 주도록 바꿔볼 것이다.아래 명령어는 새로운 터미널을 띄어서 수행하도록 하자!sudo usermod -a -G docker [사용자 이름] # [사용자이름]에게 권한주기sudo service docker restart위 처럼 명령어를 입력한 후 vm을 다시 시작해보자.아까와 똑같은 명령어를 sudo를 적지 않아도 잘 실행 됨을 확인 할 수 있다.이제 도커 세팅을 마쳤으니 제대로 실습해보자 !다음게시글 -> [Docker] Docker 컨테..
[Docker] 도커 설치하기
·
DevOps/Docker
실행 환경Ubuntu 22.04🐳Docker 설치⭐공식 문서 링크1. 우분투 시스템 패키지 업데이트리눅스 계열 운영체제에서 쓰이는 패키지 관리 툴인 apt를 최신 버전으로 업데이트 한다sudo apt-get update2. 필요한 패키지 설치sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-commonapt-transport-https : https를 통해 데이터나 패키지에 접근할 수 있다. (링크)ca-certificates : Certificate Authority - certificates라는 뜻으로 SSL기반 웹 애플리케이션이 SSL연결의 진위여부를 판별할 수 있게 해준다.cur..
[Docker] 버츄얼박스(VirtualBox) & 우분투(Ubuntu) 설치
·
DevOps/Docker
🐳버츄얼박스(VirtualBox) & 우분투(Ubuntu) 다운로드도커는 리눅스 컨테이너 기반의 기술이기 때문에 윈도우나 맥에서 실습하기 위해서는 가상의 리눅스 환경을 만들어 주어야한다.이를 위해 Vitrual Box와 Ubuntu를 사용하여 실습을 진행하려 한다.버츄얼 박스 버전 : VirtualBox-6.1.50-161033-Win우분투 버전 : ubuntu-22.04.3-desktop-amd64🔻 Ubuntu 다운로드🔻 Virtual Box 다운로드이전에 VirtualBox 7.0을 깔았을때는 아래와 같은 오류가 났다.설치 파일을 실행시켰을 때 아래와 같은 오류가 뜬다면 Microsoft Visual C++ 2019를 설치하자.🔻  Microsoft Visual C++ 2019 다운로드ARM..
[Ubuntu] 우분투 ↔ 윈도우 클립보드 공유 안됨 문제, VirtualBox 가상 광 디스크 삽입 문제
·
DevOps/Linux
⚙ 우분투↔ 윈도우 클립보드 공유 안됨 문제⚙ VirtualBox 가상 광 디스크 삽입 문제VirturalBox 의 Ubuntu에서 도커를 설치하는 실습을 하던 중우분투와 윈도우간의 클립보드가 공유되지 않은 것에 대한 불편함을 느끼게 되었다.전에 가상머신을 사용했을때 내 기억으론 복붙이 공유가 되었던거 같은데 왜 그런지 문제를 찾아보았다.첫 번째로는 [장치] - [클립보드 공유] - [양방향]전혀 먹지 않았다.또 검색해본 결과 이걸 해소하기 위한 게스트 확장을 설치하는 것이었다.[장치] - [게스트 확장 CD 이미지 삽입]띠용오류가 났다.이상태로 나는 우분투 버전도 바꿔서 다시 깔아보고VBox도 다시 깔아보고블로그에서 입력하라는 명령어들도 다 입력해보았지만 안됐다..찾아보니 자세한 정보를 봤을때 VERR..
GitHub Pages에 리액트 프로젝트(React + Vite) 배포하기
·
Programming/React
이번 블로그 글에서는 GitHub Pages를 사용해 특정 폴더 안에 있는 리액트 프로젝트를 배포하는 방법에 대해 다룹니다. 배포한 프로젝트는 https://username.github.io/repository-name/ 형식으로 접근할 수 있게 됩니다. 저는 레포지토리 안의 디렉토리에 배포 파일이 존재하기 때문에, 아래와 같은 URL로 접근할 수 있도록 설정했습니다.https://an0401na.github.io/React_Study/08-Refs-Portals/ Refs & PortalsThe Almost Final Countdown Stop the timer once you estimate that time is (almost) upan0401na.github.io제가 위와 같이 설계했던 이유는 리..
[React] React 완벽 가이드 - Refs(참조) & Potals(포탈) 활용하기
·
Programming/React
이 글은 Udemy의 【한글자막】 React 완벽 가이드 2025 with React Router & Redux 를 수강하고 정리한 내용입니다.👉 useRef를 이용하여 만든 Timer Challenge 방문하기https://an0401na.github.io/React_Study/08-Refs-Portals/ Refs & PortalsThe Almost Final Countdown Stop the timer once you estimate that time is (almost) upan0401na.github.io  🎈Refs (참조) 란?Refs(References)는 React에서 특정 DOM 요소나 클래스형 컴포넌트의 인스턴스에 직접 접근할 수 있도록 도와주는 기능입니다. 🎈 상태 vs 참조 ..
[React] 컴포넌트 속성에 컴포넌트 전달하기
·
Programming/React
🎯 React에서 children을 활용한 유연한 컴포넌트 만들기React에서 컴포넌트를 만들다 보면, 내부에 어떤 내용이 들어올지 모르는 컨테이너 역할의 컴포넌트를 만들 일이 많다. 예를 들어, Sidebar, Dialog, Card 같은 컴포넌트들은 내부에 들어갈 요소가 정해져 있지 않다.이럴 때 React의 children prop을 활용하면 꽤 유연하게 컴포넌트를 만들 수 있다. 하지만 children 외에도 특정 prop으로 컴포넌트를 직접 전달하는 방식도 있는데, 이 방법을 활용하면 더 구조적으로 UI를 구성할 수도 있다.이번에 children과 특정 prop을 활용해 재사용 가능한 컴포넌트를 어떻게 만들고 활용할 수 있는지 직접 예제를 통해 정리해 보자.children prop이란?chil..
[React] React 완벽 가이드 - 섹션 5: React로 투자 계산기 만들기 | 개발 회고
·
Programming/React
이 글은 Udemy의 【한글자막】 React 완벽 가이드 2025 with React Router & Redux 를 수강하고 정리한 내용입니다. 💡 프로젝트 개요자세한 코드는 여기로 👉 https://github.com/An0401na/React_Study/tree/main/01-starting-project이번 프로젝트에서는 React를 활용한 투자 계산기를 개발했다.사용자가 입력한 데이터를 기반으로 연간 투자 금액, 예상 수익률, 투자 기간을 계산하여매년 누적된 투자 금액과 이자를 시각적으로 보여주는 기능을 구현했다.React: 컴포넌트 기반 UI 개발useState: 사용자 입력값을 상태로 관리map(): 배열 데이터를 테이블 형식으로 렌더링Intl.NumberFormat: 숫자를 화폐 단위로 ..
[React]스프레드 연산자를 통한 속성 전달 방식- id 전달
·
Programming/React
🎈 속성(props) 전달에서 발생하는 문제와 해결 방법리액트에서 커스텀 컴포넌트에 속성을 전달할 때, HTML의 기본 속성인 id나 className 같은 속성이 정상적으로 전달되지 않는 문제가 발생할 수 있습니다. 이 문제를 해결하는 방법과 함께, Forwarded Props를 이용해 어떻게 이러한 속성들을 전달할 수 있는지 설명해 보겠습니다.  1. 기본 코드 예시먼저, 아래와 같은 기본 코드를 봅시다:function UserProfile({name, age, children}) { return ( {name} {age} years old {children} {/* 자식 요소 출력 */} );}function App() { return ( ..
[React] 함수형 컴포넌트의 반환 return 값 조건 & Fragment(프래그먼트) <>...</>
·
Programming/React
일반적인 함수에서 return 값을 두 개 가질 수 없듯이 함수형 컴포넌트에서도 여러 개의 요소를 반환 할 수 없다.리액트 컴포넌트는 반드시 하나의 요소를 반환 해야한다. 이와 같이 리액트의 함수형 컴포넌트의 return 값에는 몇가지 조건이 있다.✅ 1. 반드시 하나의 리액트 엘리먼트(React Element)를 반환해야 한다.❌잘못된 예시 (여러 개의 요소를 반환)function Welcome() { return Hello React!; // 오류 발생 ❌}그러나 화면의 UI를 구성하기 위해서 하나의 엘리먼트로는 부족한 경우가 많다. 이를 해결하기 위해 불필요한 로 감쌀 수 있다.⭕ 올바른 예시 (하나의 부모 요소로 감싸기)function Welcome() { return ( ..
[React] Element와 Componet의 차이
·
Programming/React
🎈Element앱의 UI를 구성하는 가장 단위immutable 객체(불변)화면에 표시할 내용을 기술하는 단순한 객체이며, 실제 DOM 요소를 직접 만들지는 않는다.React.createElement() 함수로 생성되며, JSX를 사용하면 더 쉽게 작성 가능하다.const element = Hello, React!;아래 element는 화면에 Hello, React!를 표현하는 객체일 뿐, 아직 실제 DOM에 반영된 것은 아니다. 리액트는 이러한 엘리먼트를 ReactDOM.render() 혹은 useState, useEffect 등의 업데이트 과정에서 가상 DOM을 통해 실제 DOM으로 변환합니다. 🎈Component리액트 엘리먼트를 반환하는 함수 또는 클래스컴포넌트는 여러개의 엘리먼트들을 조합하여 재..
[React] React 완벽 가이드 - 섹션 3: 리액트의 핵심 - 컴포넌트, JSX, 속성, 상태 등
·
Programming/React
이 글은 Udemy의 【한글자막】 React 완벽 가이드 2025 with React Router & Redux 를 수강하고 정리한 내용입니다.🎈Componet재사용이 가능한 구성요소이다.HTML, CSS, 자바스크립트 로직 등을 포함하고 있다.사용하는 이유컴포넌트가 없다면 html 코드가 방대하고 복잡해져 유지보수가 어려워질 수 있다.오류 가능성이 줄어든다.코드를 재활용 하는 방식이기 때문에 한 부분에서 일괄적으로 수정이 가능하다.공통된 기능을 제공하는 유사한 코드가 묶여 작성되어 개발 과정이 단순해진다.각 컴포넌트들 마다 각 기능별로 관심사가 분리되어 작업된다.컴포넌트 저장 및 좋은 프로젝트 구조src - assets - components - Header - Header.jsx - Header.c..
[React] React 완벽 가이드 - 섹션 1: 시작하기
·
Programming/React
이 글은 Udemy의 【한글자막】 React 완벽 가이드 2025 with React Router & Redux 를 수강하고 정리한 내용입니다. 리액트는 무엇일까?사용자 인터페이스를 구축하기 위한 자바스크립트 라이브러리리액트는 자바 스크립트 라이브러리라서 재 로딩 없이 웹페이지와 페이지에 표시되는 사용자 인터페이스를 업데이트 가능하기 때문에 사용자에게 즉각적인 반응과 부드러운 전환 경험을 제공한다.자바 스크립트는 백그라운드에서 실행되기 때문에 로딩이 완료된 페이지를 재로딩 없이 새로운 데이터로 업데이트가 가능하다. 리액트가 자바스크립트 라이브러리라면 왜 자바스크립트가 아닌 리액트를 사용해야 할까?순수 자바스크립트만으로 구현하는 것 보다 쉽고 빠르게 구축하도록 도와주기 때문HTML 코드와 자바스크립트 코드..
[CI/CD] gitHub Action으로 CI/CD 구축하고 인간젠킨스 탈출하다! (feat. Self-hosted runner)
·
DevOps
0. 들어가기 전1. 환경Host 서버CentOS Linux 7 (Core)Linux 3.10.0-862.el7.x86_64Docker 버전Docker version 19.03.4Self-hosted runner 컨테이너CentOS Linux 8프로젝트Java 11Maven 2. 배경나는야 인간 젠킨스 … 수동 배포를 맡고 있지. 😎😂두 프로젝트를 진행하면서 본사 외부에서 본사 개발 서버에 배포 요청이 들어올 때마다 곤란하곤 했다. 또 작업 후에 배포까지 바로 못해드리는 경우가 있어서 수정사항 확인이 늦어지곤 했는데 이를 해결 하기 위해 CI/CD를 구축해보고자 마음먹었다. 3. 설계 히스토리gitAciton 을 선택하게 된 배경더보기CI/CD 툴은 Jenkins와 gitAction 중에 고민하였다...
[Database-MySQL] Select 쿼리로 테이블 정의서 만들기 (sql to 정의서)
·
Programming/DataBase
SELECT a.TABLE_NAME '테이블명', b.ORDINAL_POSITION '순번', b.COLUMN_NAME '필드명', b.COLUMN_KEY 'KEY', b.COLUMN_TYPE '데이터길이', b.IS_NULLABLE 'NULL값여부', b.COLUMN_DEFAULT '기본값', b.COLUMN_COMMENT '필드설명' FROM information_schema.TABLES a JOIN information_schema.COLUMNS b ON a.TABLE_NAME = b.TABLE_NAME AND a.TABLE_SCHEMA = b.TABLE_SCHEMA WHERE a.TABLE_SCHEMA = '스키마명(수정하세요)' -- AND a.TABLE_NAME = '테이블명..
99클럽 코테 스터디 15일차 TIL /[프로그래머스] 소수찾기
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 소수 찾기 - 42839문제 링크성능 요약메모리: 84.5 MB, 시간: 23.86 ms  🤔접근법문제 요약1개 이상 7개 이하의 자연수들을 개수 상관없이 한번씩만 뽑아서 만들 수 있는 숫자가 소수인지 판별하는 문제범위 체크 및 시간복잡도 예상1 ≤ numbers의 길이 ≤ 7numbers를 이루고 있는 숫자 들은 0 ~ 9 자연수 이다.$O(N^2)$ 보다는 작아야한다.풀이법⭕ 접근 방법. 완탐숫자 문자열로부터 가능한 모든 순열 생성:각 자리 숫자를 사용하여 순열을 만들고, 각 순열조합이 소수인지 확인자리수의 중복을 방지하기 위해 방문 여부를 체크하는 배열을 사용소수 판별:각 생성된 숫자가 소수인지 확인. 소수 판별은 2부터 해당 숫자의 제곱근까지의 수로 나누어지는지 확인하는..
99클럽 코테 스터디 13일차 TIL / [프로그래머스] 입국심사
·
Algorithm/99클럽 코테 스터디
# [level 3] 입국심사 - 43238  [문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/43238) ### 성능 요약 메모리: 99.7 MB, 시간: 107.77 ms import java.util.*;class Solution { public long solution(int n, int[] times) { long answer = 0; Arrays.sort(times); // 이분탐색 기준은 모든 인원이 입국심사를 받는데 걸리는 시간 // 1분 동안 모든 인원이 입국심사를 전부 받았나? -> X // 2분 동안 모든 인원이 입국심사를 전부 받았나..
99클럽 코테 스터디 11일차 TIL /[프로그래머스]가장 큰 수
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 가장 큰 수 - 42746문제 링크성능 요약메모리: 124 MB, 시간: 215.48 ms 🤔접근법문제 요약0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내는 문제범위 체크 및 시간복잡도 예상numbers의 길이는 1 이상 100,000 이하numbers의 원소는 0 이상 1,000 이하풀이법⭕ 접근 방법. 우선순위 큐🔑 PriorityQueue를 사용하자!static PriorityQueue *pq* = new PriorityQueue((o1, o2) -> {return o2-o1;});위와 같이 PQ를 사용하여 우선순위 조건을 변경하면 큰 값이 우선이 되도록 qp를 생성할 수 있다.pq 는 힙으로 구성되어 있기 때문에 시간복잡도는 O..
99클럽 코테 스터디 10일차 TIL /[백준]최대힙
·
Algorithm/99클럽 코테 스터디
💡문제[Silver II] 최대 힙 - 11279문제 링크성능 요약메모리: 38356 KB, 시간: 1604 ms 🤔접근법문제 요약주어진 자연수 x를 배열에 넣고, 0이 주어지면 가장 배열에서 가장 큰 값을 출력하는 문제범위 체크 및 시간복잡도 예상1 ≤ N ≤ 100,000 (N은 x가 주어지는 횟수)$O(N^2)$ 보다는 작아야한다.풀이법⭕ 접근 방법. 우선순위 큐🔑 PriorityQueue를 사용하자!static PriorityQueue *pq* = new PriorityQueue((o1, o2) -> {return o2-o1;});위와 같이 PQ를 사용하여 우선순위 조건을 변경하면 큰 값이 우선이 되도록 qp를 생성할 수 있다.pq 는 힙으로 구성되어 있기 때문에 시간복잡도는 O(logN)을..
99클럽 코테 스터디 9일차 TIL / [백준] 최소힙
·
Algorithm/99클럽 코테 스터디
💡문제[Silver II] 최소 힙 - 1927문제 링크성능 요약메모리: 29732 KB, 시간: 1428 ms🤔접근법문제 요약주어진 자연수 x를 배열에 넣고, 0이 주어지면 가장 배열에서 가장 작은 값을 출력하는 문제범위 체크 및 시간복잡도 예상1 ≤ N ≤ 100,000 (N은 x가 주어지는 횟수)$O(N^2)$ 보다는 작아야한다.풀이법⭕ 접근 방법. 우선순위큐🔑 PriorityQueue를 사용하자!위와 같이 PQ를 사용하여 작은 우선으로 빠져 나올 수 있도록 자료구조를 생성할 수 있다.pq 는 힙으로 구성되어 있기 때문에 시간복잡도는 O(logN)을 가진다.➡️ 해당 풀이법의 시간 복잡도 : $O(NlogN)$😎SUCCESS고냥 단박에 성공    👩‍💻 코드import java.util...
99클럽 코테 스터디 8일차 TIL [프로그래머스] 두 큐 합 같게 만들기
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 두 큐 합 같게 만들기 - 118667문제 링크성능 요약메모리: 131 MB, 시간: 27.82 ms  🤔접근법문제 요약배열의 형태로 주어진 두 큐의 합을 동일하게 만들었을 때 최소가 되는 이동 횟수를 출력범위 체크 및 시간복잡도 예상1 ≤ queue1의 길이 = queue2의 길이 ≤ 300,0001 ≤ queue1의 원소, queue2의 원소 ≤ 10$O(queue)$풀이법❌ 접근 방법. 완탐두 배열의 길이의 합이 8이라고 했을 때 두 배열로 나눌 수 있는 길이의 경우의 수는 아래와 같다1 : 7 → 8경우2 : 6 → 8경우3 : 5 → 8경우4 : 4 → 4경우 (1,2,3,4), (4,5,6,7) 이나 (4,5,6,7) , (1,2,3,4)은 같은 경우이기 때문n으로 ..
99클럽 코테 스터디 7일차 TIL + [프로그래머스] 과제 진행하기
·
Algorithm/99클럽 코테 스터디
👩‍💻 코드import java.util.*;class Solution { static class Task { private String name; private int start; private int playtime; public Task(String name, int start, int playtime) { this.name = name; this.start = start; this.playtime = playtime; } public Task(String name, int playtime) { this..
99클럽 코테 스터디 6일차 TIL + Arrays.sort/[프로그래머스] 테이블 해시 함수
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 테이블 해시 함수 - 147354문제 링크성능 요약메모리: 144 MB, 시간: 9.92 ms  🤔접근법문제 요약주어진 2차원 배열을 정해진 컬럼을 오름차순으로 행을 다시 정렬 (값이 같다면 첫번째 값을 기준으로 내림차순)i ~ j 행을 각 i 행으로 나눈 나머지들의 합을 구한후 그 합들을 XOR 연산 하여 나온 값을 출력범위 체크 및 시간복잡도 예상1 ≤ data의 길이 ≤ 2,5001 ≤ data의 원소의 길이 ≤ 5001 ≤ data[i][j] ≤ 1,000,000data[i][j]는 i + 1 번째 튜플의 j + 1 번째 컬럼의 값을 의미합니다. (주어진 입력값들은 모두 1부터 인덱스가 시작함으로 유의하자)1 ≤ col ≤ data의 원소의 길이1 ≤ row_begin ..
99클럽 코테 스터디 5일차 TIL + HashMap/[프로그래머스] 베스트앨범
·
Algorithm/99클럽 코테 스터디
💡문제[level 3] 베스트앨범 - 42579문제 링크성능 요약메모리: 76.4 MB, 시간: 4.64 ms 🤔접근법문제 요약복잡한 우선순위에 맞춰 정렬한 다음 조건에 맞게 노래 번호를 출력하는 문제우선순위 설명 (장르에 따른 우선순위 조건이 있고, 노래에 따른 우선순위 조건이 있다.)각 장르별로 재생 수를 합산하여 재생 수가 높은 순서대로 출력단, 각 장르별로 노래는 2개씩 출력한다. (만약 주어진 보기에 장르에 해당하는 노래가 한개라면 하나만 출력한다.)두 노래의 우선순위는 재생 수가 높은 것을 우선으로 출력, 단 재생수가 같다면 고유 번호가 낮은 순서로 출력 범위 체크 및 시간복잡도 예상1 ≤ 노래 곡 수 ≤ 10,000장르 종류는 100개 미만$O(노래곡수^2)$ 까지도 가능 풀이법⭕ 접근 ..
99클럽 코테 스터디 4일차 TIL + 문자열/[프로그래머스] 문자열 압축
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 문자열 압축 - 60057문제 링크성능 요약메모리: 82.9 MB, 시간: 31.44 m 🤔접근법문제 요약주어진 문자열을 규칙에 따라 압축했을 때 가장 짧은 문자열의 길이를 출력문자열을 1개 ~ n개 단위로 잘라서 제일 앞에서부터 부분문자열을 보는데 특정문자열이 반복되면 반복횟수+문자열 로 압축 가능하다ex) abcabc → 3abc , abcabcdede → 3abcdede (길이가 3으로 잘랐을때, de는 반복 되긴 하지만 길이가 3이 아니라 압축할 수 없다.)단 , 문자열은 제일 앞에서부터 정해진 길이로 자른다.범위 체크 및 시간복잡도 예상1 ≤ 주어지는 문자열의 길이 ≤ 1,000$O(N^2)$ 까지도 쌉가능시간복잡도가 null~null~한 아주 착한 문제풀이법⭕ 접근 ..
99클럽 코테 스터디 3일차 TIL + [프로그래머스] 숫자 문자열과 영단어
·
Algorithm/99클럽 코테 스터디
💡문제[level 1] 숫자 문자열과 영단어 - 81301문제 링크성능 요약메모리: 71.7 MB, 시간: 24.66 ms     🤔접근법문제 요약숫자와 영어로 된 숫자가 띄어쓰기 되지 않은 상태로 문자열로 주어진다.부분부분 영어로 되어 있는 숫자로 바꿔서 정수형으로 출력하라.범위 체크 및 시간복잡도 예상1 ≤ 주어지는 문자열의 길이 ≤ 50모든 문자열이 숫자라고 하더라도 50이므로 시간복잡도가 null~null~한 아주 착한 문제풀이법⭕ 접근 방법. 완탐주어진 문자열에서 1 ~ 9 까지 검색 , zero ~ nine 까지 검색만약 존재한다면 존재하는 문자열의 첫번째 인덱스을 반환받아 result 배열에 영문숫자와 치환되는 숫자를 기입중복되는 숫자가 존재할 수 있으므로 이미 검색된 문자열을 @로 치환..
99클럽 코테 스터디 2일차 TIL + 유클리드호제법/GCD
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 숫자 카드 나누기 - 135807문제 링크성능 요약메모리: 124 MB, 시간: 34.15 ms 🤔접근법문제 요약배열 A의 정수들을 모두 나눌 수 있는 숫자 a는 배열 B의 정수를 하나도 나눌 수 없다.배열 B의 정수들을 모두 나눌 수 있는 숫자 b는 배열 A의 정수를 하나도 나눌 수 없다.숫자 a와 b중 큰거를 출력범위 체크 및 시간복잡도 예상1 ≤ 배열의 길이 ≤ 500,0001 ≤ 배열의 원소 ≤ 1,000,000O($N$) 이하.풀이법⭕ 접근 방법. 유클리드 호제법배열 A의 최대 공약수를 구한다.배열 B의 최대 공약수를 구한다.배열 A의 최대 공약수가 배열 B의 원소 중 하나라도 나눌 수 있는지 확인한다.배열 B의 최대 공약수가 배열 C의 원소 중 하나라도 나눌 수 있는..
99클럽 코테 스터디 1일차 TIL + 배열/스택
·
Algorithm/99클럽 코테 스터디
💡문제[level 2] 뒤에 있는 큰 수 찾기 - 154539문제 링크성능 요약메모리: 206 MB, 시간: 259.36 ms  🤔접근법주어진 정수 배열을 순회하면서 본인보다 오른쪽에 있는 수들 중에서 본인보다 크지만 가장 가까이 있는 수 찾기범위 체크 및 시간복잡도 예상1 ≤ N ≤ 1,000,000O($NlogN$) 보다 더 작아야 한다. 풀이법❌ 접근 방법. 완탐주어진 정수 배열을 인덱스 0 ~ N 까지 반복가르키는 정수로부터 오른쪽에 존재하는 모든 정수를 탐색만약 본인보다 큰 정수가 나오면 answer에 저장하고 정지➡️ 해당 풀이법의 시간 복잡도 : $O(N^2)$ → 시간 초과 ⭕ 접근 방법. stack을 사용하자 !스택에는 정수배열의 인덱스와 값을 넣는다.스택은 top 보다 값이 작을때만..