본문 바로가기

전체보기178

[프로그래머스] 숫자의 표현 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12924 풀이 이중for문으로 1부터시작해 다더해가며 n보다 같거나 넘어가면 break해주며 sum===n일때 anwer을 올리게된다. 코드를 다작성하고 나서 테스트를 해보니 효율성3,6 테스트가 시간초과가 나고 answer++;를 +=1로 바꾸어주니 해결되었다. 실제 ++보다 +=1 미세하기 속도가 더 빠르다. function solution(n) { let answer=0; for(let i=1;i 2022. 5. 3.
[프로그래머스] 땅따먹기 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12913 풀이 처음에는 land길이만큼 for문을 돌면서 현재 land[i]에서 가장 큰 값을 추출하고 해당값의 인덱스를 변수로 기억시키며 현재 기억된 인덱스가 새로 배열에서 찾은 가장 큰 값의 인덱스와 일치한다면 그 값을 제외한 나머지 값중 최대 값을 찾고 그값의 인덱스를 다시 변수로 기억시키며 해당값을 -1로 바꿔서 다시 최대값을 검색해 answer에 점수를 쌓아주며 만약 일치하지 않는다면 맨 처음 찾은 최대값을 answer에 쌓고 인덱스를 변수로 기억시키는 방법으로 구성했다. 이렇게 하면 indexOf 특성상 최대값의 인덱스가 맨 앞만 찾게 되므로 이러한 배열에서 정답은 4-2-6(3번째)-.. 2022. 5. 3.
[프로그래머스] 다음 큰 숫자 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12911 풀이 n으로 입력받은 숫자를 toString으로 2진수 변환하고 2진수 자리마다 1의 갯수를 카운트한다. 이후 while문을 돌리면서 n을 1씩 올려주며 해당 n에서도 2진수변환후 1의 갯수를 카운트하고 앞전 1의 갯수와 같다면 break하고 현재 n을 리턴해주면 된다. 쉽다. function solution(n) { let standardV = n.toString(2); let standardC = 0; for (one of standardV) { if (one === "1") standardC++; } while (1) { n++; let standardV2 = n.toString(2.. 2022. 5. 3.
[프로그래머스] 올바른 괄호 처리순서 더보기 https://programmers.co.kr/learn/courses/30/lessons/12909 풀이 문자열s가 )로 시작하면 바로 닫아버린거기 때문에 false를 리턴하고 아니라면 s길이만큼 for문을 돌리게 된다. '('의 갯수와 ')'의 갯수를 헤아리면서 특정 변수에 카운트해주고 '('일때는 변수에 +1를 해주고 ')'일때는 -1를 해주게 되며 만약 시작변수값 0이 음수가 되면 ')'이 더 많아졌다는 것이므로 올바른 괄호가 아니게 된다. 이때는 false를 리턴해주면 된다. 만약 s길이를 다돌고 끝나게 되면 변수값이 0이어야 올바른괄호다 '('와 ')' 갯수가 일치한다는 것이다. 이전에 괄호 계산하는 문제보다 훨씬 쉬웠으나 복잡하게 생각했다. ')'가 처음나오면 그앞에 '('가.. 2022. 5. 2.
[프로그래머스] 가장 큰 정사각형 찾기 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12905 풀이 y축은 board의 길이가 될 것이고 x축은 board[0]의 길이가 될 것이다. 만약 이 두개의 길이중 하나라도 2보다 작다면 최대 만들수 있는 정사각형은 1x1일 것이다. 또한 정사각형 크기는 1x1 2x2 3x3 으로 커진다는 것을 잘 기억하고 아래 그림을 확인해보자. 그림 처럼 1x1보다 큰 정사각형을 만드는 2x2부터 확인해야하므로 빨간색 1을 기준으로 왼쪽 왼쪽대각 위쪽의 숫자를 검사해서 모두가 1일때 2x2를 만들수 있고 2x2를 만들때마다 이를 자신빨간색기준 1이 2x2를 만들수 있는 값이라는 것을 기억시켜준다. 이후에 더 큰 3x3도 만들수 있는지 확인해볼 것이기 때.. 2022. 5. 2.
[프로그래머스] 방문 길이 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/49994 풀이 기준 좌표를 [0,0]으로 잡고 전체 좌표 크기는 5X5이므로 현재 좌표에서 X,Y로 U,D,L,R에 따라 좌우상하로 1씩움직일때 좌표값 X,Y중 -5이상이며 5이하이어야한다. 만약 UDLR에 따라 움직인 좌표가 -5미만 5초과일 시 해당 명령어는 무시하게 된다. 또한 한번 이동한 구간, 예를 들어 [0,0]에서 [1,0]으로 이동하고 다시 [0,0]으로 이동하면 해당 구간은 서로간에 갔다,왔다 모두 간적 있는 거리라는 것 쉽게 생각하면 우리집에서 홈플러스 까지 동일한 길을 사용해서 갔다. 그럼 홈플러스에서 우리집까지도 동일한 길로 왔다는 가정하에 난 그 길을 가본적이 있다는 것이다.. 2022. 5. 2.