24/4/4 알고리즘 (2)
최댓값과 최솟값
//공백을 빼고 숫자형으로 만든다. 정렬하기 쉽도록 이제 내림차순으로 정렬하고 문자열형태로 반환
//최댓값 최소값 매서드를 이용하신 방법 좋구용
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
소수 찾기
//아 효율성에서 떨어졌다. 아마 시간복잡도가 문제인듯 싶다.
//내풀이는 요소하나하나마다 다시 반복문을 돌며 모든약수를 확인해서 소수인지 판별하니까 시간복잡도
//문제로 통과를 못했는데
//이분의 풀이는 일단 미리 배열에 채워놓고 거기서 두번째 이중포문에서 이제 해당 요소의 배수들을
//다 0으로 만들어버려서 소수가 아닌애들을 미리 싹 걷어내 버리는 구나 효율성 훨씬 좋겠네 당연히 캬
//set이라는 거 만들어서 add로 일단 홀수를 다 담아 두셨네 거기서 1빼고 2를 더하고
//3부터 다시 포문돌면서 그녀석의 배수부터 다시 지워나가시는구나 그리고
//결과값으로 set인 s의 길이를 제출 호호 윗분하고 원리는 비슷하다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
덧칠하기
//캬 풀긴풀었다. 근데 시간복잡도가 높은가보다... 되게 오래걸리네...
//일단n만큼 1부터 n까지 담은 배열을 만든다.
//이중 반복문을 도는데 일단 item에서 -1을 뺀게 arr안에서 해당숫자의 인덱스니까 저래 할당한다.
//arr에 요소가 없으면 바로 다음으로 넘어가고
//이제 있다면 포문을 도는데 연속된 m개의 요소들을 전부 0으로 만들어 버린다.
//칠을 했다는 표시 그리고 카운트를 1개씩 업
// 일단 통과를 하긴했는데 정답쿨타임이 엄청김
//포오브 문 보이고 페인티드가 요소보다 적으면 칠수를 하나 올리고 칠한구역을 표시해주는 구먼 오호
//아하... 그렇구나..걍 어디까지 칠했는지 따로 변수로 저장만 시켜놓으면 되는구나 이중포문 필요없네...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
다트 게임
//아... 다른분꺼 살짝 참고했슴다. temp가 주요함 일단 임시로 담아두는 느낌임 캬 무조건 arr에 담아두고 후조치
//할려니까 골머리 썩었는데 temp에 일시적으로 담아두번 짱좋음
//일단 다트 레절트를 배열로 만들어 순회 시킨다.
//첫번째 if에서는 2부터 9까지의 숫자일경우 temp에 그걸 담아둔다.
//이제 10인경우는 두자릿수라 문제인데 첫글자가 1이고 그다음이 0이면 10을 담아둔다.
//그냥 1이면 1을 담고 0이 나왔는데 그앞이 1이 아니라면 10이 아니니까 0을 담는다.
//S일경우는 미리담아둔걸 배열에 넣기만 하면되고 D면 2승해서 넣고 T면 3승 해서 넣는다.
//별이 나오면 이미 넣은애들중 마지막과 그앞에 놈을 두배해주면 되고
//샵이 나오면 마지막놈을 음수로 바꾸면 된다.
//이제 모든 요소를 더해주면 끝
//정규식? match는 배열로 만든다는건 알겠는데 .. 이게 머냐? 약간 숫자와 문자와 별샵을 따로 split이라는
//배열에 담는 느낌이고먼? 대충 원리는 알겠는데 정규식 해석이 안되는구먼
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[카카오 인턴] 키패드 누르기
//아 길다.. 피똥 싸는줄 ㅋㅋㅋㅋ
//일단 각 숫자 패드에 위치정보 배열을 오브젝트 형식으로 담는다.
//그리고 현재 손꾸락 위치를 담을 right와 left를 설정한다.
//이제 넘버스라는 배열에 reduce를 돌릴껀데... 이제 cur이 핸드폰 왼쪽에 있는 숫자냐 가운데 있는 숫자냐
//오른쪽에 있는 숫자냐로 크게 분기시키고 왼쪽은 왼손으로만 누르니까 왼손의 위치를 해당 오브젝트로 할당하고
//이제 문자열에 L추가 시키고 오른쪽 라인도 오른손으로 설정해주면 되는데
//문제는 가운데인데 가운데가 오른손에 가까우면 오른손으로 찍고 왼손에 가까우면 왼손에 찍는다.
//그런데 두손이랑 거리가 똑같으면 이제 오른손잡이냐 왼손잡이냐에따라 또 분기해주면 된다.
//노가다 하느라 뒈지는줄
// 모르겠당 ㅋㅋ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~