반응형

개발/코딩 47

[프로그래밍] 프로그래머스 예제문제 풀어보기 <키패드누르기> (성공)

키패드를 왼손으로 누를지 오른손으로 누를지 결정하는 문제. 왼쪽의 1,4,7은 왼손으로 누름 오른쪽의 3,6,9는 오른손으로 누름. 가운데 2,5,8,0은 현재의 왼손 , 오른손의 위치를 비교하여 가까운 손가락으로 누름 거리가 같다면 오른손잡이인지 왼손잡이인지를 확인하여 누름. 2,5,8,0과 손의 위치를 재기위하여 *,0,# 을 각각 숫자 10,11,12로 치환하였다. 이렇게 하면 현재 손의 위치와 2,5,8,0과의 거리는 두 숫자의 차이를 3으로나눈 몫+ 나머지가 된다. 재밌는 문제였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ..

개발/코딩 2022.03.21

[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (성공)

프로그래머스 예제문제를 풀어봄. 해쉬맵과 for문을 이용하여 풀어보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 import java.util.List; import java.util.HashMap; import java.util.ArrayList; class Solution { public String[] solution(String[] record) { List answerArr = new ArrayList(); HashMap idMap = new HashMap(); for(String rec:record) { if(rec.startsWith("Enter"))..

개발/코딩 2022.03.20

[프로그래밍] 프로그래머스 예제문제 풀어보기 <오픈채팅방> (실패)

머리가 안돌아가서 엄청나게 지저분하게 코딩을 해버림. 해쉬맵에 아이디 닉네임을 먼저 매핑시킨 후 record를 기록하면 되는건데 왜 이렇게 했을까. 테스트도 실패함. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import java.util.List; import java.util.HashMap; import java.util.ArrayList; class Solution { public String[] solution(String[] record) { List answerNick = new ArrayList(); List answerArr = new Arr..

개발/코딩 2022.03.20

[프로그래밍] 프로그래머스 예제문제 풀어보기 <문자열 압축> (성공)

프로그래머스 예제문제를 풀어보았다. 동작은 하지만 주먹구구의 코드라는 생각이 든다. 내가 뭘 하고 있는건가, 코드가 지저분해지고 있는 것 같다는 생각이 코딩을 하면서도 스스로 드는 것이다. 해당 문제는 주어진 문자열을 조건에 맞춰 압축하고 가장 최적의 압축을 하였을 때의 문자열 길이를 출력하는 것이 목적이다. 코드를 더욱 간결하게 만들기 위한 공부를 해야겠다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 import java.util.ArrayList; cl..

개발/코딩 2022.03.18

[프로그래밍] 프로그래머스 예제문제 풀어보기 <숫자 문자열과 영단어> (성공) , java String 에서 int int에서 String replaceAll

지금까지 중 가장 쉬웠던 예제. 5레벨 문제들을 시도해보고 다시 1레벨을 봐서 그런걸까. 차근차근 풀다보면 언젠가 5레벨을 풀 수 있을까. (알고리즘을 짜기 위해 수학 실력이 있어야겠다는 생각을 했음) 문자열 중 해당 문자열을 포함할 경우 숫자로 치환해주는 문제. String -> Int 형변환 Integer.parseInt(); Int -> String 형변환 Integer.toString(); String객체.replaceAll(기존문자열String, 바꿀문자열String); String객체에 기존문자열이 여러번 있다면 모두 바꿔버림. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Solution { public int solution(String s) { Strin..

개발/코딩 2022.03.16

[프로그래밍] 프로그래머스 예제문제 풀어보기 <신규 아이디 추천> (성공)

String 객체를 다루는 법과 슬라이싱 등을 연습하기 좋았던 예제. StringBuffer나 StringBuilder를 이용하여 해결해보는 연습도 해보아야겠다. 구글링+ 이클립스 최고. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 class Solution { public String solution(String new_id) { String answer = "..

개발/코딩 2022.03.16

[프로그래밍] JAVA자바연습 insert삽입정렬

삽입정렬을 만들어보기. 39부터 200미만의 난수를 복원추출하여 크기가 30인 배열에 담고 해당 배열을 삽입정렬로 오름차순 정렬하는 문제. 삽입 정렬 삽입 정렬(insertion sort)은 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 부분의 적절한 위치에 삽입해 가며 정렬하는 방식이다. 그러면 삽입 정렬의 동작 과정을 [그림 8-2]의 데이터를 이용해 terms.naver.com 삽입정렬은 배열에서 2번째 값부터 마지막 값까지 추출하여 검토한다. 1회차: 2번째 값을 꺼내서 1번째 값과 비교 2회차: 3번째 값을 꺼내서 1,2번째 값과 비교 3회차: 4번째 값을 꺼내서 1,2,3번째 값과 비교 하는 것. 오름차순일 경우 추출한 값을 앞의 값들과 비교하고, 본인보다 큰 값을 만나면 그 값부터 본인 이..

개발/코딩 2022.03.13

[프로그래밍] 프로그래머스 예제문제 풀어보기 <로또의 최고 순위와 최저 순위> (성공)

프로그래머스 기본 언어설정이 C로 되어있는 줄 모르고 malloc, int* 등의 문법이 본인이 모르는 새로운 자바 문법인 줄 알고 구글링을 해보았음. 덕분에 동적할당, 정적할당이라는 개념을 알게됨. 동적할당: 힙에 메모리를 할당하는것 정적할당: 스택에 메모리를 할당하는것 C언어는 메모리를 할당하는 것까지도 일일이 설정을 해주어야하는가 보다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 class Solution { public int[..

개발/코딩 2022.03.13

[프로그래밍] 프로그래머스 예제문제 풀어보기 <신고 결과 받기> (성공)

드디어 프로그래머스 신고결과받기 예제 성공! 아~ 삶의 질이 좋아졌다. 지금까지 시간초과 문제로 골머리를 썼는데 잠을 자다가 문득 생각이 들었음 for문 안에서 HashMap이나 Set를 만든 것이 문제가 아닐까... for문 하나를 줄여보겠다고 나름 머리를 써본 것인데 반복 횟수가 커질 수록 for문 속에서 계속해서 import한 util을 사용하여 객체를 만드는 것이 부담될 것 같다는 생각이 들었음. for문을 하나 더 쓰더라도 for문 속에서 객체를 만드는 것을 지양하는 방식으로 새롭게 코드를 작성해봄 자료형에 대해 많이 배우게 된 시간이었고 같은 문제라도 코딩하는 방식에 따라 결과가 천지차이라는 것을 알게 되었다. 어떻게 통과는 하였으나 분명 이 코드에도 문제점이 많을 것이라 생각한다. 프로그래머..

개발/코딩 2022.03.13

[프로그래밍] 프로그래머스 예제문제 풀어보기 <신고 결과 받기> 재도전2(다시 66.7...)

이번에는 HashMap을 이용하여 id=number 를 매칭하여 활용하여봄. if(thisMemberReportMap.size() >=k ){ for(String thisMemberReporter: thisMemberReportMap.keySet()){ answer[idNumberMap.get(thisMemberReporter)]++; } } 굵게 친 부분이 제대로 작동하여 짜릿하였으나 여전히 시간초과로 66.7초 도대체 3번 테스트는 어떤 인자를 제공하길래 시간초과가 계속해서 나오는 것인지.. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4..

개발/코딩 2022.03.12
반응형