[면접] Java/Spring 면접 질문 정리
·
면접
면접시 나올만한 질문 객체지향이란?프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.객체지향 프로그래밍의 장점코드 재사용이 용이 => 남이 만든 클래스를 가져와서 사용가능유지보수가 쉬움 => 절차지향 프로그래밍은 일일이 찾아 수정해야하는 반면에 해당하는 부분만 수정하면됨대형 프로젝트에 적합 => 클래스 단위로 모듈화 시켜서 개발가능객체 지향적 설계 원칙SRP(Single Responsibility Principle) : 단일 책임 원칙 클래스는 단 하나의 책임을 가져야 하며 클래스를 변경하는 이유는 단 하나의 이유이어야 한다.OCP(Open-Closed Principle) : 개방-폐쇄 원칙 확장에는 ..
[프로그래머스] Level2, 다리를 지나는 트럭 (Python)
·
알고리즘/프로그래머스
문제 https://programmers.co.kr/learn/courses/30/lessons/42583?language=python3 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 코드 def solution(bridge_length, weight, truck_weights): time = 0 truck_ing = [0] * bridge_length while truck_ing: time += 1 truck_ing.pop(0) if truck_weights: if sum(tru..
[프로그래머스] Level2, 가장 큰 수 (Python)
·
알고리즘/프로그래머스
문제 https://programmers.co.kr/learn/courses/30/lessons/42746?language=python3 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 코드 from itertools import permutations def solution(numbers): answer = '' permution = list(permutations(numbers, len(numbers))) list_permution = [] ..
[프로그래머스] Level2, 124 나라의 숫자 (Python)
·
알고리즘/프로그래머스
문제 https://programmers.co.kr/learn/courses/30/lessons/12899?language=python3 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 코드 def solution(n): answer = '' while n>0: n -= 1 answer = '124'[n%3] + answer n = n // 3 return answer 1 2 4 11 12 14 1 2 3 4 5 6 인덱스는 0부터 시작하기 때문에 -1을 해준다. 두자리 수 이상인 경우도 결국 앞에 1,2,4 가 순서대로 붙기 때문에 n이 0보다 클 동안 돌려서 자릿수를 만들어준다.