문자열

    [java] 프로그래머스 (후보키) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr Approach 2019 KAKAO BLIND RECRUITMENT 문제였다. 데이터베이스에서 후보키는 유일성과 최소성을 만족시키는 키를 말한다. 유일성(uniqueness) : 릴레이션에 있는 모든 튜플에 대해 유일하게 ..

    [java] 프로그래머스 (오픈채팅방) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr Approach 2019 KAKAO BLIND RECRUITMENT 문제였다. 일단 나는 HashMap을 이용하여 구현했고, 자바에서 HashMap을 사용하면 key가 존재해도 같은 key에 대해 put을 진행하면, 나중에 put된 value로 업데이트를 해준다. 따라서 각 문자열을 공백문자(" ")로 split한 0번째 요소가 "Leave"가..

    [java] 프로그래머스 (수식 최대화) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr Approach 2020 카카오 인턴십 문제이다. "+, -, *" 3개의 연산자를 가지고 우선순위를 매길 때, 만들 수 있는 가짓수는 3! = 6가지이다. 6가지의 우선순위로 각각 계산한 값의 절댓값이 가장 큰 것을 찾는 문제이다. 먼저 문자열에서 숫자와 연산자를 분리한 후, 6가지 우선순위를 각각 적용시킨다. 접근법을 찾기는 쉬웠으나 구현..

    [java] 프로그래머스 (JadenCase 문자열 만들기) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr Approach 처음에는 공백문자(" ") 한 칸을 기준으로 split을 하여 첫 문자만 UpperCase로 나머지는 LowerCase로 하여 반환하였다. 그런데 공백문자가 한 칸이 아닌 두 칸이상 공백문자가 연속된 테스트케이스가 존재하여 이 방법은 잘못됐다. 그래서 일단 주어진 문자열..

    [java] 프로그래머스 (최댓값과 최솟값) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr Approach 주어진 문자열 s가 공백으로 구분되어져 있으므러 공백문자(" ")를 기준으로 split한 뒤, 각각의 요소들에 접근하여 최댓값과 최솟값을 갱신하면 되는 간단한 문제이다. Code public class MaxValueAndMinValue { public static void main(String[] arg..

    [java] 프로그래머스 (이진 변환 반복하기) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr Approach 월간 코드 챌린지 시즌1의 문제이며, 문자열을 처리하는 문제이다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 c를 2진법으로 표현한 문자열로 바꿉니다. 위의 두가지를 반복하면서 변환 횟수, 제거된 0의 개수를 세어서 반환하면 된다. 따로 설명이 필요없고 구현 문제기 때문에 코드를 보면서 문자열을 처리하는 방법을 익히는 것이 좋을 것 같다. Code public class BinaryConversion { public static void main(String[] args) { Str..

    [java] 프로그래머스 (튜플) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr Approach 2019 카카오 개발자 겨울 인턴십 문제이다. Level2에 위치한 카카오문제들은 가끔보면 Level2가 아닌것 같은데 이 문제는 주어진 문자열만 잘 처리하면 꽤 쉬운 문제였다. mySolution은 내가 테스트를 통과한 코드이고, simpleSolution은 다른 분의 풀이를..

    [java] 프로그래머스 (단체사진 찍기) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr Approach 2017 카카오코드 본선 문제이다. 생각보다 어려웠다... Level 2의 다른문제와는 난이도가 다른것 같다... {A, C, F, J, M, N, R, T} 로 줄을 세우는 방법 중 주어진 조건을 만족하는 방법의 개수를 구하는 문제이다. 줄을 세운다는 것 자체가 순열이므로 순열을 구하여, 특정 문자의 위치의 거리를 계산하여 ..

    [java] 백준 9019 (DSLR) Gold 5

    Problem : https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net Approach BFS + DP + Tracing 을 사용하여 풀이한 문제이다. 필자는 위의 과정보다 숫자를 만드는 작업이 더 어려웠다.(어렵다기보다 생각할 조건들이 많아서 귀찮았다.) D: D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경우에는 10000 으로 나눈 나머지를 취한다. 그 결과 값(2n mod 10000)을 레지스터에 저장한다. S: S ..

    [java] 프로그래머스 (전화번호 목록) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr Approach 처음엔 임의의 문자열 하나 A를 나머지 문자열(B, C, D, ...)에서 찾는 indexOf() 를 활용하여 반환값이 0인 것을 찾는 naive한 방법을 사용했었다. (indexOf()의 반환값이 0이면, 그 문자열로 시작한다는 뜻이므로) 그래서 Set 에 주어진 문자열을 모두 넣은 후, 하나씩 검사하는 방식을 썼었다. 이..