Computer Sciences(236)
-
[Programmers] 테이블 해시 함수
https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 처음에 문제를 읽는데 이해가 한 번에 되지 않아 애먹었다. 간단히 정리하면 다음과 같다. 주어진 2차원 정수 배열을 정렬한다. 이때 주어진 col 기준 오름차순으로 정렬하되 값이 같다면 기본 키인 첫 번 째 열 기준 내림차순으로 정렬한다. 주어진 row_begin부터 row_end까지 행을 순회하면서 각 행의 값들을 해당 행 번호로 mod 연산 한 값을 더한다. 만들어진 총합 값들을 ..
2023.08.03 -
[Programmers] 성격 유형 검사하기
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단한 구현 문제이다. 해결하는 방법에는 여러 방법이 있겠지만 필자는 HashMap으로 성격 유형 검사 결과를 관리했다. 고려해야할 부분은 성격 유형이 항상 일관되게 주어지지 않아 두 문자를 구별해야 하는 점이다. 이는 choice 값에서 4를 빼서 해결했다. choice - 4한 값이 0보다 크면 뒷 문자이고, 작으면 앞 문자라고 판단했다. 그 외에 특별히 어려운 점은 없다. 코드 ..
2023.08.03 -
[Programmers] 개인정보 수집 유효기간
https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제 이해 자체는 어렵지 않으나 날짜에 대한 처리를 잘 해야 하는 문제이다. 약관 종류와 약관 별 유효기간, 수집한 개인 정보의 수집 일자, 약관 종류, 오늘 날짜가 주어진다. 개인정보 수집 일자와 유효 기간을 더한 값이 오늘보다 더 긴 경우는 아직 유효기간이 지나지 않았으므로 파기하지 않는다. 대신 더 짧은 경우 유효 기간이 지났으므로 파기해야 한다. 이때 파기해야하는 개인정보 번호..
2023.08.02 -
[Programmers] 공원 산책
https://school.programmers.co.kr/learn/courses/30/lessons/172928# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 단순 구현 문제로 주어진 조건대로 구현하면 해결할 수 있다. 특별히 설명할 건 없어 주석으로 처리하였다. 코드 class Solution { public int[] solution(String[] park, String[] routes) { int h = park.length; // 세로 길이 int w = park[0].length(); // 가로 길이 int curRow = -1..
2023.08.02 -
[객사오] 4. 역할, 책임, 협력
협력 요청과 응답으로 연결되는 네트워크 한 사람이 다른 사람에게 도움을 요청할 때 시작 요청을 받은 사람은 일을 처리한 후 요청한 사람에게 필요한 지식이나 서비스를 제공하는 것으로 응답 다수의 요청과 응답으로 구성됨 전체적으로 다수의 연쇄적인 요청과 응답의 흐름으로 구성됨 책임 어떤 객체가 어떤 요청에 대해 대답해줄 수 있거나 적절한 행동을 할 의무 객체지향 설계의 품질을 결정하는 가장 중요한 요소 적절한 객체에게 적절한 책임을 할당해야 함 분류 하는 것 (doing) 객체를 생성하거나 계산을 하는 등의 스스로 하는 것 다른 객체의 행동을 시작시키는 것 다른 객체의 활동을 제어하고 조절하는 것 아는 것 (knowing) 개인적인 정보에 관해 아는 것 관련된 객체에 관해 아는 것 자신이 유도하거나 계산할 ..
2023.07.26 -
[객사오] 3. 타입과 추상화
추상화를 통한 복잡성 극복 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이루어진다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점을 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 💡 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것이라는 점을 기억하자. 객체지향과 추상화 개념 (concept) 공통점을 기반으로 객체들을 묶기 위한 그릇이다. 일반적으로 우리가 인식하고 있는 다양한 사물이나 객체에 적용할 수 있는 아이디..
2023.07.26