Loading...

[프로그래머스] 섬 연결하기 (javascript)

최소 가중치를 먼저 연결하는 문제이다. 크루스칼 알고리즘으로 푸는 사람들도 많다. 나는 다른 방법으로 푸는 걸 참고해서 풀었다. 순환이 생기지 않기 위해 한 쪽이 방문하면 다른 한쪽은 방문을 안한 경우만 탐사한다. function solution(n, costs) { var answer = 0; //비용이 작도록 정렬 costs.sort((a,b)=>a[2]-b[2]); const vis=new Array(n).fill(false); const bridge=new Array(costs.length).fill(false); //다리 연결의 시작 vis[costs[0][0]]=true; vis[costs[0][1]]=true; answer+=costs[0][2]; let cnt=1; //연결 된 갯수 whi..

[프로그래머스] 단어 변환 (javascript)

단순 조합 문제~~ function solution(begin, target, words) { var answer = 0; let vis=new Array(words.length).fill(false); function dfs(cur,target,cnt){ if(cur===target){ if(answer===0 || cnt

[일상] 개발 공부 & 싸피 생활 근황

1. 싸피 ​ 코로나 때문에 온라인으로 싸피 수업을 하고 있는데 나는 온라인 수업이 너무 좋다. ​ 지금도 피곤한데 오프라인으로 강남까지 왔다갔다했다면 난 아마 피곤해 죽었을 것이다.. ​ 온라인 수업이라 씻기 전까지 잘 수도 있고 쉬는시간이나 점심 시간에 침대에 엎어져있을 수 있다는 것이 너무 좋다 ​ 오프라인이면 맛있는 밥은 공짜겠지만.. 다른 공부할 시간이 확실히 줄어들 것 같다. ​ 현재 진도가 그냥 미쳤다. 일단 알려줄 테니 보아라 와다다다 이렇게 나가는 것 같은데 일단 기초는 건드려보는 건 좋은데 좀 더 천천히 자세히 나가는게 좋았을 거 같다 ㅠㅠ ​ 시험이 어떻게 나올지도 감이 안잡혀서 이번에는 그냥 평소대로 시험봐야할 것 같다. ​ 2. 면접 ​ 이번 달에 예정된 면접이 있다. 내가 가고 ..

[프로그래머스] 후보키 (javascript)

* 2021-04-13 다시 푼 풀이 function solution(relation) { var answer = 0; let rlen=relation.length; let clen=relation[0].length; const subset=[]; const set=new Set();//인덱스 조합 function comb(cnt,max,start){ if(cnt===max){ // 최소성 확인 (인덱스 중복 검사) let minimum=true; let sarr=Array.from(set); for(let i=0;i

[프로그래머스] 네트워크 (javascript)

bfs로 했지만 연결되는 곳까지 쭉 들어가는 것이 dfs에 가까운 문제인 것 같다. function solution(n, computers) { var answer = 0; let vis=Array(n).fill(0); for(let i=0;i0){ let cur=q.shift(); for(let j=0;j

[프로그래머스] jadenCase 문자열 만들기 (javascript, java)

1. javascript function solution(s) { return s.split(" ").map(v=>v.substr(0,1).toUpperCase()+v.substring(1).toLowerCase()).join(" "); } 2. java class Solution { public String solution(String s) { String answer=""; String sarr[]=s.toLowerCase().split(""); boolean first=true; for (int i = 0; i < sarr.length; i++) { if(first) { answer+=sarr[i].toUpperCase(); }else answer+=sarr[i]; if(sarr[i].equals(..

[swexpert] 7733. 치즈 도둑 (bfs, java)

답의 초기값을 1로 초기화하지 않고 음수 등으로 초기화하면 테스트 한 개를 통과 못한다. 처음에는 1덩이이므로 (모두 1이상임) 1로 초기화해준다. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Solution { static int n; static int t; static int map[][]; static int result; static int ypos[]= {0,0,1,-1}; static int xpos[]= {1,-1,0,0}; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.ne..

[swexpert] 1226. 미로 1 (bfs, java)

원래 시작점 위치 (2인 곳)을 따로 찾아서 시작점으로 넣어줘야 할 것 같은데 모든 예제의 시작점이 같길래 그냥 (1,1)로 넣어줬다. 만약 다른 테스트 케이스도 돌리는 거라면 시작점도 따로 변수에 담아줘야 할 것이다. D4지만 가장 간단한 bfs예제였다. 끝나는 경우는 3인 곳을 끝까지 만나지 못한 경우를 flag변수의 false로 하여 조건 출력해주면 된다. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Solution { static int t; static int[][] map; static int[] xpos= {0,0,1,-1}; static int[] ypos= {1,-1,0..

[프로그래머스] 영어 끝말잇기 (javascript)

set으로 중복 여부 검사 진행 턴은 인덱스/사람 수+1 누구인지는 인덱스%사람수 +1 function solution(n, words) { var answer = [0,0]; const set=new Set(); let prev=words[0][0]; for(let i=0;i

[프로그래머스] 쿼드 압축 후 개수 세기 (javascript)

주어진 범위 내에서 하나라도 다른 수가 있으면 시작위치를 기준으로 길이/2 만큼 y,x에 더해서 새로운 시작위치를 만들고 새로운 길이를 len/2로 해서 재귀함수로 던져준다. 중간에 주어진 범위에서 모든 수가 같다면 해당 수의 개수를 +1 더해주고 더 길게 들어가지 않고 len이 1이 되면 더이상 쪼갤 수 없으므로 해당 수를 +1더해주고 끝낸다. --- new 풀이! function solution(arr) { var answer = [0,0]; let n=arr.length; go(0,0,n); function go(y,x,len){ let cur=arr[y][x]; let pass=true; for(let i=y;i