전체 글

JavaScript

[Javascript] 오름차순 내림차순 정렬 함수 / sort()

arr.sort() 로 문자열 정렬하기 : 정렬할 때 요소를 문자열로 취급한다. var arr = ["a", "c", "d", "e", "b"]; arr.sort(); console.log(arr); // ["a", "b", "c", "d", "e"] arr.sort() 로 숫자 오름차순 정렬하기 sort() 함수의 파라미터로 함수를 정의한다. 이 함수는 a, b 두 개의 파라미터를 입력받고, a > b이면 1, a == b이면 0, a b) return 1; if (a===b) return 0; if (a a-b); arr.sort() 로 숫자 오..

JavaScript

[Javascript] 소수점 올림, 버림, 반올림 함수 / Math.ceil(), Math.floor(), Math.round(), parseInt()

Math.ceil() : 올림 Math.floor() : 버림 Math.round() : 반올림 숫자.toFixed(자리수) : 원하는 소수점 길이만큼만 반올림해서 반환해준다. parseInt(string, radix) : 문자열을 숫자로 변환하기 string : 숫자로 변환할 문자열 radix : string 문자열을 읽을 진법 / 2~36의 수 string을 정수로 변환한 값을 리턴한다. 만약 string의 첫 글자를 정수로 변경할 수 없으면 NaN(Not a Number)을 리턴한다.

Programmers/Lv1

[프로그래머스] 문자열 내 마음대로 정렬하기 (Lv1)

문제요약 나의 코드 및 설명 아스키코드를 활용하여 직접 구현하다가 실패했다.. 문제의 테스트케이스와 내가 추가한 테스트케이스는 통과하지만, 히든 테스트케이스는 계속 실패했다. function solution(strings, n) { var answer = []; for (var s of strings){ var flag = false; if (answer.length == 0){ //아직 answer이 비어있을 때, answer.push(s); } else { //answer에 어떠한 문자열이 있을 때 for (var i = answer.length-1 ; i > -1 ; i--){ if (answer[i][n].codePointAt() > s[n].codePointAt()){ if (i == 0){ a..

Baekjoon/DFS와 BFS

[백준] 16953 A → B (실버2)

문제요약 나의 코드 및 설명 - DFS 활용 DFS를 활용하여 문제를 해결하였다. def dfs(depth, temp): global a,b if temp >= b: if temp == b: result.append(depth) return dfs(depth+1, temp*2) dfs(depth+1, int("".join(map(str, (list(map(int, str(temp)))+[1]))))) a, b = map(int, input().split()) result = [] dfs(0,a) if result: print(min(result)+1) else: print(-1) 다른 코드 및 설명 - BFS 활용 BFS를 활용하여 문제를 해결하였다. 큐에 다음 숫자와 연산의 개수를 추가한다. from ..

Baekjoon/구현

🥇[백준] 16236 아기 상어 (골드3)

문제요약 나의 코드 및 설명 bfs() : 아기 상어의 위치로부터 이동할 수 있는 칸의 거리를 v 테이블에 저장 find() : v 테이블에 저장된 숫자가 가장 작은 칸이 아기 상어로부터 가장 가까운 거리의 칸이므로, 가장 가까운 거리의 물고기를 구하는 함수 먹을 수 있는 물고기가 없을 때까지 두 함수를 반복한다. from collections import deque #아기 상어의 위치에서부터 이동할 수 있는 칸의 거리를 v 테이블에 저장 def bfs(sx,sy,size): queue = deque() queue.append((sx,sy)) v[sy][sx] = 0 board[sy][sx] = 0 while queue: x,y = queue.popleft() for i in range(4): nx = ..

Baekjoon/구현

🥇[백준] 20055 컨베이어 벨트 위의 로봇 (골드5) / 시뮬레이션, deque의 rotate() 함수

문제요약 나의 코드 및 설명 나는 컨베이어 벨트와, 로봇 위치가 회전하는 것을 직접 구현하였다. #컨베이어, 로봇 위치 회전 def rotate(): x = a.pop() y = b.pop(0) a.insert(0,y) b.append(x) r = robot.pop() robot.insert(0, r) #로봇 이동 def move(): for i in range(n-1,0,-1): #3 , 2, 1 #맨 끝에서부터 if robot[i] == 0 and a[i] >= 1: #로봇이 없고, 내구도가 1 이상이면 if robot[i-1] == 1: #이전 칸에 로봇이 있다면 robot[i] += 1 #현재 칸에 로봇 +1 a[i] -= 1 #내구도 1 감소 robot[i-1] -= 1 #이전 칸 로봇이 현재 ..

Baekjoon/구현

🥇[백준] 17406 배열 돌리기 4 (골드4)

문제요약 나의 코드 및 설명 너비 우선 탐색을 통해 회전할 범위에 있는 좌표를 순차적으로 방문하며, 스택을 활용해 현재 좌표 값을 저장하고, 다음 좌표 방문 시 스택에 저장된 이전 좌표 값으로 갱신한다. 순열 라이브러리를 통해 가능한 모든 회전 연산의 경우의 수를 탐색하여, 최소값을 구했다. from itertools import permutations from collections import deque import copy #한 줄씩 방문하면서 스택에 값을 넣고, 다음 좌표에 값을 넣는다 def bfs(sx,sy,ex,ey,stack,board): queue = deque() v = [[0 for _ in range(m)] for _ in range(n)] v[sy][sx] = 1 stack.appe..

Baekjoon/구현

🥇[백준] 15683 감시 (골드4) / 백트래킹, 구현

문제요약 나의 코드 및 설명 (참고한 코드) fill() : cctv 번호에 맞게 감시 지역을 채우는 함수 dfs() : 가능한 감시 지역을 백트래킹으로 모두 파악 dfs()에서 리스트 cctv에 저장된 cctv정보(cctv번호, x,y)를 하나씩 꺼내고, cctv번호를 통해 가능한 감시 방향을 for문을 통해 탐색하며 fill 함수를 통해 그리드를 업데이트한다. import copy #--------------------함수 정의 부분------------------ #cctv번호에 맞게 감시 지역을 채우는 함수 def fill(board, direction, x,y): for i in direction: #ex) 여기서 direction은 [1,2]...이다 nx = x ny = y while Tru..

hellosonic
꾸준함