분류 전체보기 183

LG CNS 2024 동계 DX Core 인턴 코딩테스트 후기

아직 3학년 2학기라서 내년도 졸업 예정인 인턴 or 신입 채용 공고에 지원이 불가능한 걸로 생각하고 있던 와중 25년도 2월 졸업예정자도 지원 가능한 인턴이 열려서 지원하게 되었습니다. LG CNS 2024 채용연계형 동계 인턴 포지션에 지원했고 이번 겨울방학 때 정말 좋은 경험이 될 것 같아서 바로 지원했습니다. 지원 가능하다는 사실을 알자마자 바로 자소서 쓰기에 돌입했고 그 이후에 볼 코딩 테스트 준비도 시작했습니다. 사실 코테는 올해 치를 계획이 없어서 아예 준비를 못하고 있었는데 갑자기 시작하게 되었습니다...ㅋㅋㅋㅋ 전공 수업도 거의 다 안 가고 학교 도서관에서 유튜브 코테 강의 보면서 벼락치기하고 그런 나날을 보내던 와중에... 서류를 합격했다는 메일을 받았고 코테 일정도 받게 되었습니다! ..

취준 2023.11.26

python 코딩테스트 - 2022 카카오 인턴 기출 2번

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 든 생각 - 대놓고 큐 쓰라고 줬고 popleft랑 append를 쓰면 되겠다. 이 함수들은 시간복잡도 O(1)이니깐 - 서로 대소 비교를 하면서 큰 놈에서 작은 놈으로 하나씩 옮겨가주면서 같은지 아닌지 계속 확인하면 되겠다. 나의 답 from collections import deque def solution(queue1, queue2): q1 = deque(queue1) q2 = deq..

python 코딩 테스트 - 카카오 2022 인턴 기출 1번

https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 매우 길어 링크를 첨부했다. 처음 든 생각 - 성격 유형 점수랑 성격 유형이 4가지로 고정이니깐 같은 인덱스로 조작해야겠다. - 앞에 오는 게 뭔지 관리를 해줘야겠다. - 각 지표별 성격유형을 점수를 매긴 후 정렬을 해주고 합쳐줘야겠다. - 같은 점수를 나타내더라도 알파벳 순서로 정렬 되므로 굳이 추가적인 작업은 필요 없겠다. 나의 답 def solution(survey, choices)..

python 코딩테스트 - 프로그래머스 구명보트

처음 든 생각 - 정렬을 한 뒤에 큐나 스택 자료구조를 사용하면 되겠다. 자료구조 선택 이후 그 다음 계산로직만 구현하면 된다고 판단해서 바로 코드를 작성했다. 나의 답 from collections import deque def solution(people, limit): answer = 0 q= deque(sorted(people)) while q: if len(q) == 1: q.popleft() answer += 1 break if q[0] + q[-1] > limit: q.pop() answer += 1 else: q.popleft() q.pop() answer += 1 return answer 큐 자료구조를 사용했고 길이가 1인 특수 케이스에 대해서 따로 처리를 한 후 최솟값과 최댓값을 짝을 ..

python 코딩테스트 - 프로그래머스 전력망을 둘로 나누기

처음 든 생각 - 이건 무조건 DFS를 써야된다. - 하나가 끊어진 모든 경우를 탐색하면서 DFS를 해서 차이를 구하면 되겠다. 나의 답 def solution(n, wires): answer = n def dfs(g,v,s): v[s] = True for k in g[s]: if v[k] == False: dfs(g,v,k) for i in range(len(wires)): a,b = wires[i] wires[i] = [0,0] g = [[] for _ in range(n+1)] v = [False for _ in range(n+1)] for j in range(n-1): x,y = wires[j] if x > 0: if y not in g[x]: g[x].append(y) if x not in g[..

python 코딩테스트 - 프로그래머스 할인 행사

처음 든 생각 - 먼저 want와 number를 통해서 원하는 품목과 개수를 딕셔너리를 만들고 나중에 비교해야겠다. - discount 리스트를 한 칸씩 옮겨가면서 슬라이싱을 한다. 크기가 원하는 총 개수랑 똑같으니깐 sliding window라고 해도 되네. - window 내에서 품목, 개수 딕셔너리를 만들고 원하는 품목 딕셔너리랑 비교하면 되겠다. 나의 답 def solution(want, number, discount): answer=0 obj = {} total = 0 for i in range(len(want)): if want[i] not in obj: total += number[i] obj[want[i]] = number[i] tmp = {} for i in range(len(discou..

python 코딩테스트 - 프로그래머스 행렬의 곱셈

처음 든 생각 - 먼저 행렬 연산을 손으로 직접 써보자 - arr1에서 행을 선택한 후 arr2에서 열 별로 순차적으로 곱해서 더해주면 된다. (아래 그림과 같은 동작) - arr1의 행 별 반복문(1), arr2의 열 별 반복문(2), 열 안에 행 별 반복문(3) 총 3단계의 반복문이 등장해야겠다. 나의 답 def solution(arr1, arr2): answer = [] for i in range(len(arr1)): arr = [] for j in range(len(arr2[0])): tmp = 0 for k in range(len(arr2)): tmp += (arr1[i][k] *arr2[k][j]) arr.append(tmp) answer.append(arr) arr=[] return answ..

python 코딩테스트 - 프로그래머스 네트워크

처음 든 생각 - 하나를 시작해서 끝까지 어디까지 연결되어있는지 파악해야하므로 이건 DFS를 해야한다. - DFS를 하는 방식을 다시 곱씹어보자. - 연결되어있는 노드들이 제시된 리스트가 있고, visited 여부를 확인하는 리스트가 또 있어야한다. 그리고 dfs 함수를 선언한 뒤 노드에 연결된 모든 노드들에 대해 반복문을 돌고 조건에 따라 재귀를 구성한다. 나의 답 answer = 0 def solution(n, computers): global answer a=[] v = [0] * len(computers) def dfs(c): global answer if v[c] == 1: return v[c] = 1 a.append(c) for n in range(len(computers[c])): if v[..

python 코딩테스트 - 프로그래머스 카펫

처음 든 생각 - 이건 수학적으로 접근하는 게 맞다 - 테두리 식과 내부의 타일 개수를 세서 가로 세로를 구하는 다항식을 세워서 연립해야겠다 나의 답 import math def solution(brown, yellow): plus = (brown+4)/2 multi = yellow - 4 + 2 * plus answer = [] for i in range(math.floor(multi**(1/2))+1): if i * (plus - i) == multi: answer.append(i) answer.append(plus-i) answer.sort(reverse=True) return answer brown을 통해서 가로 + 세로의 값을 yellow를 통해서 가로 * 세로의 값을 구한다. 그 다음 두 개의..

python 코딩테스트 - 소수 찾기

처음 든 생각 - 나올 수 있는 모든 수를 구해야겠다 -> permutations 라이브러리 사용 - 소수인지 아닌지 확인하는 함수는 따로 만들어줘야겠다 - string, number 자료형 구분 잘할 것 나의 답 from itertools import permutations import math def solution(numbers): arr =[] for i in range(1,len(numbers)+1): arr.append(list(permutations(numbers,i))) def checkPrime(num): count = 0 if num 1: break return True if count

728x90