알고리즘/프로그래머스 일기 4

[프로그래머스] 완주하지 못한 선수

문제: 설계: 1)hashmap을 이용하여 key = name, value = 횟수 로 설정한다. 2)if문으로 get을 이용하여 해당 name의 value가 0인지 검증하고, 0이라면 participant의 name을 put으로 넣으면서 value를 1로 넣는다. 0이 아니라면, get으로 value값을 가져와 그 값에서 1을 증가시킨 값을 put으로 다시 넣는다. 3)completion의 name을 가져와 해당 name으로 get을하여 hashmap에서 value를 가져오고 가져온 value에서 -1을하고 다시 hashmap에 put으로 넣는다 4)hashmap의 key값을 탐색하여 그 value가 0이 아닐 시, 해당 key값을 결과값에 저장한다. 시행착오: 2)와 3)을 아주 간단하게 코드한줄로 ..

[프로그래머스] k번째 수

문제: 설계: commands 배열은 이차배열이기 떄문에 이중 for문을 써야하지만 열의수는 3으로 고정되어있기때문에 for문을 하나만 사용하기로 설계하였다. 1.for문을 돌려 commands행렬의 각 행마다의 행렬을 획득한다. 2.그 행렬 안에서 첫번째성분- start포인트 , 두번째성분-end포인트 ,세번째 성분-check포인트 로 변수를 할당한다 3. for문의 마지막에서 arraylist를 선언한 후 list에 조건에 맞는 값을 넣기위해 for문을 돌려 start포인트 - end 포인트까지의 array성분을 add한다 4.완성된 list를 list.sort(null)을 이용해 오른차순으로 sort 한 후 list.get(check포인트)를 통해 arrylist에서 값을 받아와서 answer행렬에..

[프로그래머스] LV1-1

문제 설계 사실 문제가 너무 쉬워서 설계라고 할것도 없다. for문 안에서 입력받은 Stirng 문자열의 문자단위로 하나씩 바라보며 값을 읽고, 해당 대상이 아스키코드로 65 이상인지 아닌지, 문자열의 길이가 4와 6인지 아닌지. 크게 두가지로 검증을 한 후 결과값으로 True, false 만 리턴하면 될것이라고 생각했다. 시행착오 코딩을 손놓은지 오래라서, 어떤 문법을 써서 해당 설계안을 구현할지가 문제였다. 1.입력받은 String 문자열을 어떻게 문자단위로 하나씩 자르고 숫자와 비교할까? 처음에는 substring함수를 사용하여 문자단위로 자르고 그것을 int형으로 바꿔서 비교하려고 했으나, Integer.parseInt를 쓰면 문자열 그대로 int형으로 바뀔뿐이지 아스키코드가 되는건 아니였다.(e..

프로그래머스를 시작

IT회사에 다니면서도, 전공이 컴퓨터쪽이 아니였기때문에 알고리즘 관련 기본 소양이 없었다. 비록 지금 하고있는 일은 알고리즘을 전혀 몰라도 상관없는 서버 쪽이지만, 회사에서 개발언어 TEST를 보기도하고, IT관련 종사자로써 알아둬야할것 같아서 간간히 프로그래머스 또는 백준을 풀어보면서 실력을 쌓아올릴려고 한다. 프로그래머스 일기탭을 만든 이유는 풀었던 문제는 풀이과정을 생생히 기록해둬서 나중에 참고하거나, 나의 성장도를 확인하기 위함이다~