본문 바로가기

프로그래밍94

[pg] 프로그래머스 숫자 문자열과 영단어 1. 문제 정의 이번 문제는 굉장히 쉽다. 문자열안에 영어로 적혀있는 숫자를 아라비아 숫자로 변환해주기만 하면 된다. ex) "zero12" -> "012" 2. 나의 시도 문제를 보고 맵이 떠올라 맵을 만들고 맵을 순회하면서 문자열에 있는 알파벳을 아라비아숫자로 변경하였다. 3. code /** * 프로그래머스 LV1 * 숫자 문자열과 영단어 * 접근 방법: 문자열과 숫자를 map으로 만들고, map을 순회 하면서 key값에 해당하는 문자열은 숫자로 바꾸는 형식으로 진행. */ public class Solution { public int solution(String s) { Map translator = new HashMap(); translator.put("zero","0"); translator... 2023. 8. 1.
[pg] 프로그래머스 신고 결과 받기 0. 개요 이 문제는 이전에 자료구조 지식과 알고리즘 지식이 없다시피 하던 시절 무작정 도전해서 풀어봤던 문제다. 그때에는 맵을 무려 3개나 사용해서 간신히 간신히 풀었던 기억이 있는데, 이번에 코테를 준비하면서 다시 한번 풀어보게 되었다. 나도 쥐똥만큼은 성장한 것인지, 문제를 보고 얼마 지나지 않아 해결방법이 떠올랐다. Person이라는 객체를 만들어서 해결하면 좋겠다고 생각하고, 코딩을 시작했다. 1. 문제 정의 이 문제는 유저들의 유저ID가 있고, 그 유저가 다른 유저를 신고했을 경우 신고당한 유저의 신고횟수가 증가하여(여러번 신고할시에는 1번만 신고한 것으로 간주된다.), 신고횟수가 최종적으로 메서드에 k라는 매개변수로 주어지는 값과 같거나 더 크면 그 유저를 신고한 유저들에게 결과 메일이 발송.. 2023. 7. 27.
[pg] 프로그래머스 성격 유형 검사하기 0. 개요 자료구조/ 알고리즘을 공부하면서 코딩테스트 문제를 푸니 뭔가 시너지가 나는 느낌이다. (아닐수도?) 암튼 자료구조도 선형구조 부터 시작해서 정리해야하고, java도 수업시간에 들은 것들 중에 좀 깊게 정리해야 될 부분이 있지만, 하루하루 버티기는 가능하지만, 뭔가 여유롭게 전부 다 하기는 어려운 느낌이라 귀찬은 건 미뤄두고, 코테 문제 해결이나 꾸준히 작성해보려한다. 이대로라면 정리는 쌓이고 쌓여 산 처럼 되어버리게찌... 쉣.. 그래도 역시 프로그래밍은 하면 할 수록 느는거 같아 성취감을 느낀다. 프로그래밍이 이래서 좋다. 적성에 안 맞으면 해도해도 안 느는것도 있는데.. 이건 늘긴하니까... 1. 문제 정의 오늘의 문제는 다음과 같다. mbti와 같은 성격유형 검사를 위해서 각 문항마다 1.. 2023. 7. 26.
[pg] 프로그래머스 개인정보 수집 유효기간 0. 개요 그룹 스터디에서 코딩테스트 준비를 하기 위해서 여러가지 의견들이 있었지만 결국에는 프로그래머스 문제를 다 풀어보는 것으로 결정났다. 그래서 레벨 1에서는 카카오 기출, 그리고 레벨 2부터는 문제를 전부 풀어보는 것을 목표로 진행할 예정이다. 1. 문제 정의 오늘의 문제를 요약하자면 다음과 같다. 개인정보 수집에 동의한 날짜가 있고, 각 약관마다 유효기간이 다르다. (6달, 12달, 3달 등) 그래서 오늘 날짜를 기준으로 만료된 개인정보를 리턴하는 문제이다. 주어지는 것은 1. 약관 타입과 약관 유효기간이 담긴 배열 2. 개인정보 번호, 약관타입, 개인정보 동의날짜 (yyyy.MM.dd)가 담긴 배열 3. 오늘 날짜 가 주어진다. 주의해야할 것은 각 월을 28일 기준으로 계산된다는 점이다. 2... 2023. 7. 25.
[pg] 프로그래머스 주식가격 0. 개요 최근 코딩 테스트 문제를 다시 풀어보면서 자료구조/알고리즘의 학습 필요성을 느끼고 다시 공부 중이다. 이전에는 알고리즘 배우고 들입다 문제풀고, 좌절하고 반복이었지만, 아직 시간이 많이 남은 만큼 차근차근 하나하나 해볼 생각이다. 너무 급하게 서두르지 않는게 목표다. 1. 문제 정의 주식 가격이 떨어질 때 까지의 시간을 구하는 문제이다. 초마다의 주식가격이 배열로 주어지고, 배열을 순회하면서 현재 인덱스에 존재하는 data 값보다 미만으로 떨어지는 시점의 시간을 구하는 문제이다. 주어지는 것: 각 초마다의 주식가격 output: 현재 인덱스의 값보다 가격이 미만인 값이 되기 까지의 시간(초)을 담은 배열. 2. 나의시도 스택/큐에 속해 있는 문제라고 해서 스택이나 큐로 풀으려고 생각했지만, 문.. 2023. 7. 23.
[pg] 프로그래머스 프로세스 0. 개요 오늘도 난 힘겹게 코딩테스트 문제를 푼다.. 알고리즘은 넘나 어려운 것!! 리팩토링할 기력도 없다.. 그럼 문제를 시작하자.. 1. 문제 정의 문제는 다음과 같다. 1. 큐에 프로세스들이 들어 있는데 각 프로세스는 우선순위를 가지고 있다. 2. 우선순위가 높으면 높을수록 먼저 실행되야 한다. 3. 그렇기 때문에 큐에서 poll 하더라도 큐에 우선순위가 더 높은 프로세스가 존재하면 큐에 다시 프로세스를 집어 넣는다. 주어지는 것: 우선순위 배열, 알고자하는 프로세스의 인덱스 location output: location으로 주어지는 프로세스가 몇 번째에 실행되는지 2. 나의 시도 일단 문제에서도 큐를 언급하였고, 순서대로 실행해야하는 부분이 있어 큐로 진행했다. 1. 일단 우선순위로 배열의 우선.. 2023. 7. 19.
[pg] 프로그래머스 올바른 괄호 0. 개요 다시 돌아온 코테~ 이번 문제는 쉬워서 재밌었다. 이런 문제만 코테에 나와줬으면 좋겠지만 그것은 허황된 바람일뿐.. 1. 문제정의 1. 문자열로 "(())" 와같은 예시가 주어지고 이것이 올바른 괄호인지 확인하는 문제. 2. 문자열 s의 길이는 10만 이하이며 문자열은 '('와 ')'로만 이루어져 있다. 주어진 것: 괄호 문자열 정답 output : 이 괄호가 올바른 괄호인지 true / false 리턴 2. 나의 사고 및 시도 괄호문제를 보고 큐보다는 스택이라는 느낌이 딱 와닿아서 스택으로 풀기로 했다. 1. char를 저장할 스택을 하나 선언한다. ( 여기에는 '('가 문자열에서 발생했을 경우 ')'를 넣을 것이다.) 2. 문자열을 char 배열로 만든다. 3. 순회하면서 '(' 일 경우에.. 2023. 7. 19.
[pg] 프로그래머스 기능개발 0. 개요 다시~ 돌아온 코딩테스트~ 왠지 너무나 어려워~ .... 이렇게 노랫말 한 소절로 나의 마음을 이야기 하면서 시작해 볼까 한다. 부트캠프를 시작하고 그룹스터디의 메인 주제가 코딩테스트 준비로 잡힘으로 해서 (반) 강제적으로 코테준비를 시작했다. 그리고 각각의 문제를 풀면서 느꼈던 점을 남기고자 이 글을 작성한다. 1. 문제정의 1. 프로그램 기능개발을 해야한다. 2. 각 기능의 진도를 나타내는 배열이 주어진다. ex) [51,10,90] 3. 각 기능 별로 진행할 수 있는 속도 배열이 주어진다 ex)[30, 20, 1] 4. 프로그램은 각 순서대로 배포된다. (뒷 기능이 먼저 배포될 수 없다.) 5. 첫 기능의 진도가 100, 두 번째 기능의 진도가 100이라면 같이 배포된다. 주어지는 것: .. 2023. 7. 19.
[JAVA] orElse와 orElseGet의 차이 0. 개요 최근 요구사항이 새로 들어오면서 코드를 수정해야할 일이 생겼다. 로직을 작성하던 중에 Stream을 사용했다. 그러나 코드를 작성하고 나서 실행 시켰을 때 NullPointException이 발생하는 현상이 발생했다. 스트림을 사용하면서 사용한 메서드들은 filter(), findFirst(), orElseGet() 이렇게 3가지를 사용했다. 1. 문제 정의 디버깅을 하면서 살펴본 결과 orElseGet()이 실행되면서 NullPointException이 발생했다. 원인을 짐작해보건데 내가 코드를 작성하면서 orElse와 orElseGet에 대한 이해도가 높지 않아 ()안에 null을 넣으면서 발생한 이슈라고 판단된다. 2. 각 메서드 개념 정리 해결방법은 간단하다 orElse와 orElse.. 2023. 6. 8.