[Kotlin / 코딩테스트] 프로그래머스 - 카펫
·
CodingTest/Kotlin으로 푼 코딩 테스트
1. 문제 2. 생각대로 풀이 수학적으로 어떠한 공식이 나올꺼 같았다. 해보니 몇가지 공식이 나왔다 노란색 가로의 길이 = X, 세로의 길이 = Y 라고 할 때, xy = yellow 2(x+y)+4 = brown (x+2)*(y+2) = yellow + brown x와 y는 양의 정수이다. 3가지 공식을 반복문을 돌려서 찾았다. class Solution { fun solution(brown: Int, yellow: Int): IntArray { var x = 1 while(true) { if(2*x +(2*yellow)/x==brown-4) { if((yellow/x+2)*(x+2) == brown + yellow) { break; } } x++ } return intArrayOf(yellow/x+2..
[Kotlin / 코딩테스트] 프로그래머스 - 가운데 글자 가져오기
·
CodingTest/Kotlin으로 푼 코딩 테스트
1. 문제 2. 코드 2-1. 풀이 1 class Solution { fun solution(s: String): String { val sList = s.split("") if (sList.size % 2 == 0) { return sList[sList.size/2-1] + sList[sList.size/2] } else { return sList[sList.size/2] } } } 2-2. 풀이 2 class Solution { fun solution(s: String): String { val middleIndex = s.length / 2 return if (s.length % 2 == 0) { s.substring(middleIndex - 1, middleIndex + 1) } else { s...
[Kotlin / 코딩테스트] 프로그래머스 - 두 개 뽑아서 더하기
·
CodingTest/Kotlin으로 푼 코딩 테스트
1. 문제 2. 코드 2-1. 첫번째 코드 class Solution { fun solution(numbers: IntArray): IntArray { val result: MutableList = mutableListOf() numbers.indices.forEach { i -> numbers.indices.forEach { j -> if (i != j) { result.add(numbers[i] + numbers[j]) } } } return result.distinct().sorted().toIntArray() } } numbers의 indices로 인덱스 참고 이중 for문에 i != j 일때 더해서 저장 distinct로 중복제거, sorted로 정렬 2-2. 두번째 코드 class Soluti..
[프로그래머스 / Java] 하샤드 수
·
CodingTest/Java로 푼 코딩 테스트
1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 문제 해석 받은 숫자의 각 자리수의 합이 나누어 떨어져야한다. 예를들어 1111을 받으면 1+1+1+1 = 4, 1111이 4로 나누어 떨어지면 하샤드 수 이다. 그럼 각 자리수를 더해서 직접 나누어 보면 되지않을까? 3. 첫번째 풀이 class Solution { public boolean solution(int x) { boolean answer = true; int x2 = x; int tmp = 0; if (x > 1000) { int a = x/1000; tmp += a; //1000..
[LOATODO] 전략패턴(Strategy Pattern)을 이용한 코드 리팩토링
·
Project/LOATODO
1. 서론디자인 패턴 중 전략패턴에 대해 공부하였고 프로젝트에서 수정하면 좋은 부분이 생각나서 반영하였습니다. - 공부자료 1 : 전략 패턴 예제 작성 + 깃허브 커밋 (참고. JAVA 객체 지향 디자인 패턴 서적) Fetch: 전략패턴 · minhyeok2487/DesignPattern@1a60ca0minhyeok2487 committed Feb 26, 2024github.com - 공부자료 2 : 사이트 전략 패턴/ 디자인 패턴들 / 행동 패턴 전략 패턴 다음 이름으로도 불립니다: Strategy 의도 전략 패턴은 알고리즘들의 패밀리를 정의하고, 각 패밀리를 별도의 클래스에 넣은 후 그들의 객체들을 상호교환refactoring.guru  2. 리팩토링2 - 1. 리팩토링 부분현재 LoaTodo의 레이..
[LOATODO] 이메일 인증 Redis 서버 -> RDBMS로 변경
·
Project/LOATODO
1. Redis 사용 중지LoaTodo는 현재(2024년 2월 1일) 이메일로 가입하는 방식과 구글과 연동해서 가입하는 방식두가지를 지원하고 있습니다. 그 중 인증번호를 확인하는 로직에서 데이터를 저장하는 용도로 Redis를 사용하고 있고Redis 서버는 AWS ElastiCache에서 구축하고 있습니다.   [ 코드 일부 ]public int sendMail(String mail){ MimeMessage message = createMail(mail); javaMailSender.send(message); saveRedis(mail, number); return number;} public boolean checkMail(MailCheckDto mailCheckDto) { L..
[팰월드/PALWORLD] 불 피우기 Lv4 마그니드라 알 구하기
·
개인/팰월드(PALWORLD)
게임을 하시다보면 덩치큰 팰도 늘어나서 요리도 해야하고 교배도 돌려야되서 케이크도 만들어야하는데 이 "케이크"가 작업량이 굉장히 많아서 오래 걸립니다 이때 도감 101B "마그니드라"가 단일 불 피우기 Lv4 로 아주 좋습니다!! 1. 도감 하지만 레벨도 높고 초반에 잡기에는 쌔고 멀리 있습니다 저도 잡아본적이 없으니까요 저희는 알을 훔치면 됩니다! 2. 알 위치 지도 7시방향 화산의 기슭부터 안쪽으로 한바퀴 빙 도시면 발견할 수 있습니다 근데 엄청 안나와요... 포스팅에 쓰일 사진 찍으려고 다시 돌아다녔는데 안보이네요 외국 포스팅으로 대체하겠습니다 3. 알 부화 4. 일해 계란 후라이같이 짧은거는 저 동그란 바가 1/5 정도되면 완성됩니다
[팰월드/PALWORLD] 팰 도감 / 작업 적성 정리 (미완)
·
개인/팰월드(PALWORLD)
아직 미완이지만 하나씩 정리해서 공유해보려고합니다 No.001 도로롱 수작업 Lv 1 운반 Lv 1 목장 Lv 1 No.002 까부냥 수작업 Lv 1 채집 Lv 1 채굴 Lv 1 운반 Lv 1 No.003 꼬꼬닭 채집 Lv 1 목장 Lv 1 No.004 큐룰리스 파종 Lv 1 수작업 Lv 1 채집 Lv 1 벌목 Lv 1 제약 Lv 1 No.005 파이호 불피우기 Lv 1 No.006 청부리 관개 Lv 1 수작업 Lv 1 운반 Lv 1 No.007 번개냥 발전 Lv 1 수작업 Lv 1 운반 Lv 1 No.008 몽지 파종 Lv 1 수작업 Lv 1 채집 Lv 1 벌목 Lv 1 운반 Lv 1 No.009 불꽃밤비 불피우기 Lv 1 No.010 펭키 관개 Lv 1 수작업 Lv 1 냉각 Lv 1 운반 Lv 1 N..
[Java] 스택(Stack)이랑 큐(Queue)가 뭔데? + 코딩테스트 문제
·
CodingTest/Algorithm
1. 스택(Stack) 1 - 1. 스택이란? "쌓다", 데이터를 차곡차곡 쌓아 올린 형태의 자료구조를 말합니다 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있습니다. 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 LIFO(Last In First Out) 구조 가장 최근에 스택에 삽입된 자료의 위치를 top이라고 합니다. 활용 예시 웹 브라우저 뒤로가기 실행 취소(Ctrl + z) 역순 문자열 만들기 후위 표기법 계산 수식의 괄호 검사(연산자 우선순위 표현을 위한 괄호 검사) 1 - 2. 자바에서의 스택 자바에서의 스택은 Stack 클래스를 구현하여 제공하고 있습니다. Stack st = new Stack(); Stack의 메서드 boolean empty() : Stack이 비어있는지 확인 ..