본문 바로가기

전체 글230

코딩테스트 연습 > 약수의 합 - JAVA 주소 풀이 - 나의 생각 효율적으로 약수를 구하는 방법을 알려드리고자 들고온 문제입니다. 보통 n의 약수를 구하기 위해서 사용하는 방법은 public int solution(int n) { int answer = 0; for(int i = 1; i 2024. 1. 16.
코딩테스트 연습 > 이상한 문자 만들기 - JAVA > 실패 해결 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 처음에는 String[] arr = s.split(" "); 이런 식으로 공백을 기준으로 단어를 잘라서 했는데 이럴경우 "_abc_def_" 이런 경우("_"가 공백이다) arr = {"abc", "def"} 가 돼서 답이 나오지 않았다. 그래서 for(String s : s.split("")){} 으로 주어진 문자열을 한 글자 단위로 모두 자르고 공백일 경우 " " 위치가 짝.. 2024. 1. 16.
코딩테스트 연습 > 소수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 소수는 1과 자기 자신으로만 나누어지는 수입니다. 이걸 판별하는 여러가지 방법이 있는데 저는 trial division(시도로 나누기) 방법을 사용했습니다. n이 주어질때 2부터 n의 제곱근까지만 확인하면 되는겁니다. 예를 들어서 16이 주어질 때 2분터 4(16의 제곱근)까지만 나누어 보면 소수인지 아닌지 판별이 가능한 것을 알 수 있습니다. 코드 class Solution .. 2024. 1. 15.
코딩테스트 연습 > 롤케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 Set을 통해 주어진 Topping의 가짓수를 세면 편합니다. 위의 그림처럼 왼쪽, 오른쪽 각각의 방향에서 가짓수를 체크합니다. 그 후에 롤케이크를 잘랐을 때 가짓수가 같은 경우를 세면 정답을 알 수 있습니다. 주의할 점은 왼쪽의 인덱스가 2일 경우는 0 ~ 2까지의 토핑 가짓수입니다. 오른쪽의 인덱스가 2일 경우 2 ~ n까지의 토핑 가짓수입니다. 그렇기때문에 두 경우를 비.. 2024. 1. 12.
2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 - JAVA https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 - 나의 생각 User ID 와 닉네임이 있는데 유저가 닉네임을 변경하면 지금까지 나왔던 기록에서 해당 유저의 닉네임이 다 변경해야 됩니다. 그러기 위해서는 2가지만 하면 됩니다. 1. 유저의 닉네임 기록 2. 유저의 최종 닉네임으로 기록 남기기 1. 유저의 닉네임 기록 HashMap을 사용해서 유저별 최종 닉네임을 기록합니다. 2. 유저의 최종 닉네임으로 기록 남기기 User ID로 닉네임.. 2024. 1. 12.
1.1 싱글톤 패턴 (Singleton Pattern) 싱글톤 패턴은 하나의 클래스에서 오직 하나의 인스턴스만 가지는 패턴입니다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용합니다. 하나의 인스턴스를 만들어 놀고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있음. 하지만 의존성이 높아진다는 단점이 있음. 참고자료 : 면접을 위한 CS 전공지식 노트 (저자 : 주홍철) 2024. 1. 11.