Loading...

[프로그래머스] 행렬 테두리 회전하기 (javascript)

function solution(rows, columns, queries) { var answer = []; const map=Array(rows).fill(0).map((_,i)=>Array(columns).fill(0).map((_,j)=>i*columns+j+1)); for(let i=0;i=x;j--){ next=map[yy][j]; map[yy][j]=cur; cur=next; if(minimum>cur)minimum=cur; } for(let i=yy-1;i>=y;i--){ next=map[i][x]; map[i][x]=cur; cur=next; if(minimum>cur)minimum=cur; } // console.log(map) answer.push(minimum); }

[프로그래머스] n 개의 최소공배수 (javascript)

최소공배수 초기값을 1로 잡고 배열의 각 수와 새로운 최소공배수를 구한다. function solution(arr) { var answer = 1; for(let i=0;i

[백준] 14467번 소가 길을 건너간 이유 1 (java, 구현)

www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class B_14467_소가길을건너간이유1_Main { static int n; static int[] cow; public static void main(String[] args) { Scanner sc=new Scanner(System.in); int answer=0; n=sc.nextInt(); cow..

[백준] 1013번 달팽이 (구현, java)

www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 밖이 아니라 안에서부터 빙글빙글 돌아나가는 문제이다. 하반기 삼성 오후 2번째에서 이거 활용해서 나오는 문제가 나왔었는데 지금은 금방 풀었는데 시험장에서는 긴장해서 좀 버벅거렸다. ㅠㅠ import java.util.Scanner; public class B_1913_달팽이_Main { static int n,m; static int[][] map; static int[] ypos= {-1,0,1,0}; stat..

[백준] 11728번 배열 합치기 (java)

www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 병합 정렬을 구현하는 문제이다. (재귀 없이 간단하게) 두 배열을 입력받아 정렬한 후 더 작은 값을 먼저 결과값에 넣어주면 된다. 알고리즘은 같은데 마지막에 결과배열의 값을 n번 for문 돌며 출력했더니 에러가 나더라. stringbuilder로 문자열로 만들어서 한 번에 출력했더니 통과됐다 package algo0428; import java.util.Arrays; impo..

[백준] 15797번 기차가 어둠을 헤치고 은하수를 (구현, java)

www.acmicpc.net/problem/15787 15787번: 기차가 어둠을 헤치고 은하수를 입력의 첫째 줄에 기차의 수 N(1 ≤ N ≤ 100000)과 명령의 수 M(1 ≤ M ≤ 100000)가 주어진다. 이후 두 번째 줄부터 M+1번째 줄까지 각 줄에 명령이 주어진다. www.acmicpc.net package algo0428; import java.util.Arrays; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class B_15785_기차가어둠을헤치고_Main { static int n,m; static int[][] train; public static void main(String[..

[프로그래머스] 배달 (javascript)

function solution(N, road, K) { var answer = 0; const dist={};//양방향 정보 저장 for(let i=0;iArray(N+1).fill(-1));//1에서 갈 수 있는 지점 const pq=[[1,0]]; while(pq.length>0){ pq.sort((a,b)=>a[1]-b[1]);//비용 적은 순 리턴 const [v,cost]=pq.shift(); if(vis[1][v]==-1){//아직 방문 안되었다. 나중에 같은 점 방문하는 경우 항상 비용이 크다 vis[1][v]=cost;//지점 업데이트 for(let k=0;kK)continue;//거리가 k보다 크면 안된다. if(vis[1][next]==-1){//아직 방문 안한 곳이라면 진행 pq.p..

[프로그래머스] 점프와 순간 이동 (Javascript)

0에서 n까지 가는 dp문제이다. 처음에는 재귀로 dp 돌렸는데 거리가 n을 초과하거나 비용이 더 작을 때만 진행시켜도 시간 초과났다. 거리가 2배인 곳으로 순간이동하는 데 비용이 없어 최대한 순간이동 시켜주는 게 좋으므로 2의 배수라는 것을 처리해주기 위해 %연산자를 써서 n에서 시작해서 0 까지 가준다. 2이 배수가 아닐 때에는 순간이동해서 온게 아니므로 -1로 짝수로 이동해준다. function solution(n) { var ans = 0; while(n>0){ if(n%2==0){ n/=2; }else{ n-=1; ans+=1; } } return ans; }

[swexpert] 1949. 등산로 조성 (java, dfs)

높이를 깎아서 다른 높이를 전달할 수 있다 => 같은 위치더라도 다른 높이로 들어온다. 방문정보를 어떻게 전달할 지 몰라서 방문 처리가 어려워 dfs로 했다 package algo0424; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Pos{ int y,x; int cut; intnum; int len; public Pos(int y, int x,int cut,int num,int len) { super(); this.y = y; this.x = x; this.cut=cut; this.num=num; this.len=len; } } public class S_1949_등산로조성_Solution { ..

[백준] 17142번 연구소3 (java, bfs)

www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 활성 바이러스를 조합으로 구한 후 돌린다. 활성 바이러스는 비활성 바이러스가 있는 칸을 지나갈 수 있다. package algo0424; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Pos{ int y,x; public Pos(int y, int x) { super..