취업 및 이직 준비 37

프로그래머스 코딩 기초 트레이닝 Python Day16 ~ Day25

DAY16 문자열 대문자로 바꾸기def solution(myString): return myString.upper()테스트:print(solution("aBcDeFg"))# "ABCDEFG"print(solution("AAA"))# "AAA"설명:upper() 메서드는 문자열의 모든 알파벳을 대문자로 변환이미 대문자인 경우는 그대로 유지됨 소문자로 바꾸기def solution(myString): return myString.lower()테스트:print(solution("aBcDeFg"))# "abcdefg"print(solution("aaa"))# "aaa"설명:lower() 메서드는 문자열의 모든 알파벳을 소문자로 변환이미 소문자인 경우는 그대로 유지됨 배열에서 문자열 대소문자 변환하기def ..

프로그래머스 코딩 기초 트레이닝 Python Day6 ~ Day15출처

DAY6 조건문 반복문 마지막 두 원소def solution(num_list):# 마지막 원소와 그 전 원소 비교 if num_list[-1] > num_list[-2]:# 마지막 원소가 더 크면 그 차이를 추가 num_list.append(num_list[-1] - num_list[-2]) else:# 마지막 원소가 더 크지 않으면 마지막 원소의 두 배를 추가 num_list.append(num_list[-1] * 2) return num_list설명:리스트의 마지막 원소와 그 전 원소 비교:num_list[-1]은 마지막 원소num_list[-2]는 마지막에서 두 번째 원소조건에 따른 값 추가:마지막 원소가 더 크면: 두 원소의 차이를 추가마지막 원소가 더 크..

프로그래머스 코딩 기초 트레이닝 Python Day1 ~ Day5

DAY 1문자열 출력str = input()print(str) a, b 출력a, b = map(int, input().strip().split(' '))print("a =", a)print("b =", b)a, b = map(int, input().strip().split(' '))input(): 사용자로부터 문자열을 입력받습니다.strip(): 입력된 문자열의 앞뒤 공백을 제거합니다.split(' '): 문자열을 공백을 기준으로 나누어 리스트로 만듭니다map(int, ...): 리스트의 각 문자열을 정수로 변환합니다a, b = ...: 변환된 두 정수를 변수 a와 b에 각각 할당합니다예시: 입력이 "4 5"인 경우"4 5" (입력) → "4 5" (strip) → ["4", "5"] (split) → ..

2024 하반기 코스콤 서류 지원 후기

[지원경로] 아는 지인의 소개로 코스콤이라는 회사가 좋은 회사라고 지원해보라는 이야기를 듣고 지원하게 되었다. 지원 분야는 신입 IT 분야였고 자기소개 내용에는 중고신입 으로 메세지 발송 프로그램 관리간 고객의 금전적 부분, 대용량 데이터 처리, AI LLM 분야와 검색엔진 분야에 흥미를 많이 가지고 있고 해당 기술을 회사에 접목 시키고 싶다는 방식으로 작성하였다. 나는 영어 점수도 없고, 자격증도 거이 없고 학벌이 좋지도 않다고 생각하는데 서류라도 붙어서 기분이 조금 좋았지만 바로 필기와 면접 내용 후기를 보니 시간이 너무 촉박하여 기대를 놓아주게 되었다.  [서류 작성 내용]1. 코스콤에 지원한 동기를 본인의 직업(직장) 선택 기준과 연계하여 기술하시오. 2.코스콤 입사 후 어떤 업무를 수행하고 싶은..

2024 카카오 모빌리티 서류지원 후기

지원분야 내가 지원한 분야는 MLOps Engineer 분야이다. 현 회사는 AI 개발자로 들어갔지만 AI는 구경도 못하고 웹 개발만 하였지만 이전 부터 원하는 분야에서 일하고 싶어 포트폴리오에 AI 분야가 거이 없어 떨어질걸로 예상했지만 허수로 코테라도 보라고 합격시켜준거 같다...... 불합격 예정 코딩테스트 공부는 1주 하다가 3달 뒤에 다시 1주 하다 3달 뒤에 다시 하듯이 기본적인 코딩 테스트 문제도 잘 풀지 못해 10월 5일에 있는 코딩테스트는 떨어질거로 예상되지만 이직 준비를 하며 간만에 서류가 붙어 기록용으로 작성을 하였다.  23년 4월 개발 첫 회사를 입사하고 달라진 스팩은 거이 없지만 기존 포트폴리오와 경력기술서 , 이력서 등을 고쳐보니 작년까지 서류에 떨어진 기업들이 조금 씩 서류를..

기술 면접 프로젝트 및 자기소개

자기소개 안녕하십니까 OOO 부서에 지원 한 OOO입니다 저는 대학은 정보통신공학과를 졸업하였습니다. 대학교에서는 통신 기술을 기반으로 프로그램을 학습하였고 다양한 분야를 활용하는 것에 흥미를 가지게 되었습니다. 졸업후에 Rotc로 통신장교로 복무하며 통신병과에서 지원해주는 대학원을 입학하여 거기서 추가로 통신분야만인 아닌 Ai 분야도 프로그램을 통해 접목할 수 있으면 좋겠다고 생각을 하게되어 대학원은 지능형소프트웨어학과를 졸업하였습니다. 졸엄후에는 실무분야의 부족함을 느껴 국비지원으로 웹 서버 기반 Ai 응용 개발자 구축과정을 약 5개월간 수강하며 추가로 2달간 파이썬 데이터분석과 영상처리 프로젝트를 진행하였습니다. 학원 수료 후 OOO회사 IDC 센터에서 웹, API 개발 및 유지보수와 AI 음성서비..

코딩테스트 - 파이썬 - 상자 채우기

def solution(n): if n == 0: return 0 box_5 = n // 5 # 5kg 무게의 상자 개수를 최대한 많이 채우는 경우를 계산하여 box_5에 저장 while box_5 >= 0: # box_5 값이 0 이상인 동안 반복 remaining = n - (5 * box_5) # 남은 무게를 계산하여 remaining에 저장 if remaining % 3 == 0: # 남은 무게가 3의 배수인 경우, 3kg 무게의 상자로 채울 수 있음 box_3 = remaining // 3 # 3kg 무게의 상자 개수를 계산하여 box_3에 저장 return box_5 + box_3 # 5kg과 3kg 무게의 상자 개수를 합하여 반환 box_5 -= 1 # 가능한 경우가 없는 경우, box_5 ..

코딩테스트 준비 - 팰린드롬

팰린드롬(palindrome)은 앞에서부터 읽어도 뒤에서부터 읽어도 동일한 문자열 또는 숫자열을 말합니다. 예를 들면 "level", "radar", "madam" 등이 팰린드롬의 예시입니다. 팰린드롬은 문자열뿐만 아니라 숫자나 기호 등 다양한 형태로 나타날 수 있습니다. def solution(n, m): count = 0 # 팰린드롬 숫자의 개수를 저장하는 변수 for num in range(n, m + 1): # n부터 m까지의 범위에서 숫자를 하나씩 확인 num_str = str(num) # 숫자를 문자열로 변환하여 각 자리수를 확인하기 위한 변수 is_palindrome = True # 현재 숫자가 팰린드롬인지 여부를 저장하는 변수 # 숫자의 각 자리수를 확인하여 팰린드롬인지 여부를 판단 for..

파이썬 코딩테스트 - 괄호짝 맞추기 - 참고용

def check_matching_brackets(s): stack = [] # 스택 초기화 # 닫힌 괄호를 키(key)로, 여는 괄호를 값(value)으로 하는 딕셔너리 brackets = {')': '(', '}': '{', ']': '['} for char in s: if char in brackets.values(): # 여는 괄호일 경우 스택에 push stack.append(char) elif char in brackets.keys(): # 닫는 괄호일 경우 if not stack or brackets[char] != stack.pop(): # 스택이 비어있거나, 짝이 맞지 않는 경우 False 반환 return False else: # 괄호 이외의 문자는 무시 continue # 스택에 남아..

파이썬 - 추첨결과 - 코딩테스트 - 참고용

if __name__ == "__main__": # 입력 받기 n = int(input()) # 당첨시킬 응모권의 수 numbers = list(map(int, input().split())) # 추첨함 속 응모권에 적혀 있는 회원번호 리스트 # 중복 제거를 위해 set 사용 unique_numbers = set(numbers) # 추첨 대상으로 인정할 회원번호들을 담을 리스트 winners = [] # 추첨 대상으로 인정된 회원번호들을 winners 리스트에 추가 for num in unique_numbers: if numbers.count(num)

자바스크립트 코딩 문제 결과 참고용

코드는 입력 문자열을 가져와 대괄호 안의 참조를 번호가 매겨진 참조로 바꾸고 끝에 번호가 매겨진 참조 목록을 추가하여 형식을 지정하는 JavaScript 함수 'formatThesis' function formatThesis(input) { let references = new Map(); let referenceCounter = 1; // 참고문헌 번호를 위한 카운터 초기화 let revisedInput = input.replace(/\[(.*?)\]/g, (match, titles) => { // 대괄호 안의 텍스트를 참고문헌 번호로 대체 let titleList = titles.split(",").map(title => title.trim()); // 쉼표로 구분된 제목들을 분리하고 공백 제거 le..

프로그래머스 - 타겟넘버 - 자바 - 코딩테스트연습

class Solution { int answer = 0; // 목표값과 일치하는 경우의 수를 저장할 변수 public int solution(int[] numbers, int target) { dfs(numbers, 0, target, 0); // 깊이 우선 탐색(DFS) 함수 호출 return answer; // 결과 반환 } // 깊이 우선 탐색 함수 public void dfs(int[] numbers, int depth, int target, int sum){ if(depth == numbers.length){ // 배열의 모든 요소를 다 탐색한 경우 if(target == sum) answer++; // 목표값과 일치하는 경우 answer 변수 증가 } else { dfs(numbers, de..

기술면접 준비 4

ELB(Elastic Load Balancer) 애플리케이션 트래픽을 여러 대상에 자동으로 분산시켜 안정적인 AWS서버 환경을 운용하는데에 도움을 주는 서비스로 EC2뿐만 아니라 컨테이너(ECS), AWS Lambda 등으로 다양한 서비스와 연계하여 부하를 분배할수 있다. 서로 다른 EC2 인스턴스에 대한 하나의 엔드포인트를 제공한다. 그래서 사용자는 실제 요청이 처리되는 백엔드 인스턴스에 대한 고려 없이, 동일한 엔드포인트로 요청을 전송할 수 있다. vue와 react 차이 vue는 반드시 데이터 객체를 생성한 후에 data를 자유롭게 업데이트할 수 있고, React는 state 객체를 만들고 업데이트를 하려면 조금 더 많은 작업이 필요 react * UI 라이브러리이며 * 라이브러리는 참고가 용이, ..

기술면접 결과 정리 2

🎬 추천 프로젝트 사용 필터링 사용자 기반 협업 필터링 나와 성향이 비슷한 사람들이 사용한 아이템을 추천해 주는 방식이다. A가 온라인 몰에서 a와 b, 그리고 c 도 함께 구매하고, 또 다른 사용자 B는a와 b를 구매했다고 가정해 보자. 알고리즘은 구매 목록이 겹치는 이 두 사용자가 유사하다고 판단해, 사용자 B에게 c를 추천한다. - 나는 프로젝트에서 코사인 유사도를 이용 아이템 기반 협업 필터링 아이템간 유사도를 계산합니다. 아이템간 유사도를 추정해보니 아이템 2번과 아이템 4번이 유사하다고 나타난 거죠. 그럼 아직 아이템 4번을 사용하지 않은 사용자 E에게 아이템 4번을 추천해주는 것입니다. - 나는 유사도 값을 json 형식으로 레시피 간의 유사도를 계산 컨텐츠 기반 필터링 영화를 예를 들면 어..

프로그래머스 - 같은 숫자는 싫어 - 자바 - 코딩테스트 준비

import java.util.*; public class Solution { public int[] solution(int []arr) { int[] answer = {}; // 크기가 얼마나 있는지 모르니 가변인 어레이리스트를 사용 ArrayList arrl = new ArrayList(); // 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수 int num = -1; // 영햐을 끼치지 않는 숫자 for(int i=0; i< arr.length ; i++){ if(arr[i] != num){ // 처음은 무조건 삽입 왜냐면 관련없는 -1 arrl.add(arr[i]); num = arr[i]; // 배열의 변수를 비교하기 위해 num에 arr을 넣는다. } } // ans..

기술면접 준비 3

Servlet vs JSP Servlet - 자바 언어로 웹 개발을 위해 만들어진 것으로, Container가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것(Html in JAVA) JSP(Java Server Page) - html기반에 JAVA코드를 블록화하여 삽입한 것(JAVA in Html)으로 Servlet을 좀 더 쉽게 접근할 수 있도록 만들어 진 것 RESTFUL 해당 URL만 보더라도 바로 어떤 작업을 하는지를 알 수 있도록 하나의 데이터는 하나의 URL을 갖도록 작업하는 방식 Session - 특정 웹사이트에서 사용자가 머무르는 기간 또는 한 명의 사용자의 한번의 방문을 의미한다. - Session에 관련된 데이터는 Server에 저장된다. - 웹 브라우저의 캐시에 저장되어 브라..

기술면접 준비 2

예외처리 NullPointException : null 값을 가지고 있는 참조 변수로 즉 해당 객체가 null인 상태에서 접근했을 때 해당 값이 null에 대한 접근을 하여 발생, 해당 객체는 없는데 접근하여 발생한다고 생각하자 ArrayIndexOutBoundsException : 배열에서 할당된 인덱스 범위 초과시 발생 NumberFormatException : 데이터를 숫자로 변경하는 경우 많이 발생 svm(Support vector machine) 신호처리, 의료 응용 분야, 자연어 처리, 음성 및 영상 인식을 비롯한 여러 분류 및 회귀 문제에 사용되는 지도 학습 알고리즘, 기계학습의 하나로 자료 분석을 위한 지도 학습 모델로, 주로 분류와 회귀 분석을 위해 사용 MVC 유저가 보는 페이지, 데이..

기술면접 준비 1

객체 지향의 특징 현실세계의 객체를 필드와 메서드로 정의한 Class를 기반으로 실제 메모리가 잡혀 만들어진 부품과 같은 객체들을 조합해 전체 프로그램을 완성해 나가는 개발 기법 특징 캡슐화, 은닉화 : 외부 객체에서 구현방식은 알 수 없도록 숨기고 별도로 접근할 수 있는 getter/setter 메서드를 통해 접근하도록 하는 방식 상속 : 부모 Class를 자식이 접근할 수 있도록 물려 받는 방식 다형성 : 부모 클래스 타입으로 해당 부모를 상속받는 여러 자식 class를 대입할 수 있는 성질 등을 들 수 있다. 자바 가비지 컬렉션 시스템에서 더이상 사용하지 않는 동적 할당된 메로리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라..

프로그래머스 - 완주하지 못한 선수 - 자바 - 코딩테스트 준비

✔ HashMapimport java.util.*; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Map map = new HashMap(); for (String p : participant) { map.put(p, map.getOrDefault(p, 0) +1); } for (String c : completion){ map.put(c, map.get(c) -1); } for (String key : map.keySet()){ if(map.get(key) != 0){ answer = key; break; } } return answer; } }1. Map을 사용..

프로그래머스 - (폰켓몬) - 자바 - 코딩테스트연습

import java.util.*; class Solution { public int solution(int[] nums) { int answer = 0; int min = nums.length/2; HashSet set = new HashSet(); //중복을 없에기 위해 set 사용 // Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있다. for (int n : nums){ set.add(n); } // HashSet의 크기는 size()를 이용 if(min >= set.size()) answer = set.size(); else answer = min; // 크기만 나오면 되기 때문에 그냥 사이즈를 계산 return answer; } }HashSet : 중복을 없에기 위..

AWS 배포 메모

sudo yum update // 호스트 네임 변경 hostname sudo hostname set-hostname 000 // 변경할 호스트 이름 // 날짜 변경 한국으로 date sudo timedatectl set-timezone Asia/Seoul // 한국과 서울로 // 자바설치 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm // 자바버전 외부 wget으로 받아오기 sudo rpm -ivh jdk-17_linux-x64_bin.rpm // .rpm 파일 열어주기 sudo alternatives --config java //멀 선택 1 // 1번 선택 java -version // 자바 버전 설치를 확인하는 기능을..

프로그래머스 자바 (옹알이1) 코딩테스트 문제

class Solution { public int solution(String[] babbling) { int answer = 0; for(int i=0; i< babbling.length; i++){ babbling[i] = babbling[i].replaceFirst("aya", "0"); babbling[i] = babbling[i].replaceFirst("ye", "0"); babbling[i] = babbling[i].replaceFirst("woo", "0"); babbling[i] = babbling[i].replaceFirst("ma", "0"); // 처음 부분을 포함한걸 전부 없에라 replace 할경우 다 없어지기 때문에 first사용 babbling[i] = babbling[i]...

프로그래머스 자바 (n 의 배수 고르기) 코딩테스트 문제

✔ 방법1 import java.util.Arrays; class Solution { public int[] solution(int n, int[] numList) { return Arrays.stream(numList).filter(v -> v % n == 0).toArray(); } } 1. Arrays를 임포트 해주기 2. .stream(numlist) 에서 뽑겠다. 3. .filter(v -> v % n == 0) 필터를 이용하여 조건에 맞는걸 뽑겠다. 조건은 n으로 나눈 경우 0 4. .toArray() - List 컨테이너의 인스턴스를 배열(array)로 만드는것이 'toArray' 메서드 ### new ArrayList() - 컬렉션 생성 시, 새로운 주소값으로 할당하기 위한 용도 new A..

첫 면접 후기 - 개인면접, 코딩 테스트

개인면접 및 테스트 15시 면접인데 14시 30분에 도착하니 개인면접이여서 바로 면접을 시작하였다. 면접은 먼저 코딩테스트를 a4용지에 출력된것을 풀었다. 코딩테스트(필기) - 기본지식 테스트 10문제(한 문제에 해당하는 내부 문제 많음) 주관식문제,시간제한없음 모든 문제에 그렇게 생각한 이유와 과정작성 모른다면 이후에 어떻게 대처할것이냐 자바, html, jquery, sql(조인문제),js,예외처리 차이, 기본 용어. 등 나왔습니다 1. 기본 용어 # mvc # b2b # b2c # was 2. jquery 반복문 빈칸 채우기 3. 자바 이중포문 무한반복 문제 결과와 과정 상세 쓰기 4. css문제 ID와 Class 차이와 사용 하는 경우 상세 쓰기 5. DB - left join 과 sum을 활용한..

그래프 용어, 종류와 트리와의 차이점

1. 그래프(Graph) 실제 세계의 현상이나 사물의 정점(Vertex) 또는 노드(Node)와 간선(Edge)으로 표현하기 위해 사 2. 그래프 관련 용어 노드(node) : 위치, 정점이라고 함 간선(edge) : 위치간의 관계를 표현한 선으로 노드를 연결한 선(link 또는 Branch라고도 함) 인접 정점(adjacent vertex) : 간선으로 직접 연결된 정점(또는 노드) 3. 그래프의 종류 3-1. 무방향 그래프 방향이 없는 그래프 간선을 통해, 노드를 양뱡향으로 갈 수 있음 3-2. 방향 그래프 간선에 방향이 있는 그래프 보통 노드 A, B가 A -> B로 가는 간선으로 연결되어 있는 경우 로 표기(와 는 다름 3-3. 가중치 그래프 간선에 비용 또는 가중치가 할당된 그래프 3-4. 연결..

백준 Python 1302번 (베스트셀러)

문제 - 1302 김형택은 탑문고의 직원이다. 김형택은 계산대에서 계산을 하는 직원이다. 김형택은 그날 근무가 끝난 후에, 오늘 판매한 책의 제목을 보면서 가장 많이 팔린 책의 제목을 칠판에 써놓는 일도 같이 하고 있다. 오늘 하루 동안 팔린 책의 제목이 입력으로 들어왔을 때, 가장 많이 팔린 책의 제목을 출력하는 프로그램을 작성하시오. song = int(input('오늘 책이 얼마나 팔렸나요?')) books = {} # books를 딕셔너리형 {}으로 초기화 for _ in range(song): book = input('어떤 책이 팔렸나요?') if book not in books: books[book] = 1 # book이 기존 딕셔너리 books에 없다면 빈도를 1 else: books[boo..

백준 - Python 1543번 문제 (문서 검색)

문제 - 1543 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오 hun = input('입력 값1') # 입력 값1 seop = input('입력 값2') # 입력 값2 cnt = 0 song = 0 while song