Loading...

[백준] 4307번 개미 (java, 구현)

www.acmicpc.net/problem/4307 4307번: 개미 개미 여러 마리가 길이가 lcm인 막대 위에 있다. 각 개미의 이동 속도는 모두 일정하며, 1cm/s이다. 개미가 막대의 마지막까지 걸어간다면, 개미는 그 즉시 떨어지게 된다. 또, 두 개미가 만나게 된 www.acmicpc.net 최소 시간은 각 개미들이 떨어지는 시간의 최대값을 구해주면 된다. 최대값은 각 개미들의 양 끝 거리 중 더 큰 값의 최대값을 구해주면 된다. package algo0421; import java.util.ArrayList; import java.util.Scanner; public class S_4307_개미_Main { static int t,l,n; static ArrayList list; public ..

[SWEA] 5604. 구간합 (java, 수학)

풀이 참고 mygumi.tistory.com/180 package algo0421; import java.util.Scanner; public class S_5604_구간합_Solution { static long t,a,b; static long[] count; static long point; public static void main(String[] args) { Scanner sc=new Scanner(System.in); count=new long[10]; point=1;//초기화 a=1; b=sc.nextLong(); while(a

[백준] 17609번 회문 (java, 구현)

www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 이중 포문을 안돌고 하는 방법은 양끝에서 비교해나가다가 다른 부분에서 둘 중 하나 삭제해보고 회문이 맞는지 검사하면 되는 문제 모든 곳을 한 번씩 삭제해볼 필요없이 처음 달라지는 부분만! 삭제해보면 된다. package algo0420; import java.util.Scanner; public class B_17609_회문_Main { static int t; static String s; static char[] arr; public s..

[백준] 14891번 톱니바퀴 (java, 시뮬레이션)

www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 시계방향 반시계방향 이동은 앞, 뒤의 원소를 반대쪽에 다시 넣어주는 것으로 구현하면 된다. (덱을 써도된다.) 현재 톱니바퀴 6번 인덱스 (left) 와 왼쪽 톱니바퀴 2번 인덱스를 비교해서 다르면 이동시킨다. - 방향 반대, left는 왼쪽 톱니바퀴의 6번 인덱스로 바꿔줌. (1번 톱니바퀴까지 쭉 진행) 현재 톱니바퀴 2번 인덱스 (right)와 오른쪽 톱니바퀴의 6번 인덱스를 비교해서 다르면 오른쪽 톱니..

[백준] 17822번 원판 돌리기 (java, 시뮬레이션)

www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 인접한 영역의 삭제는 큐를 이용해서 해줬다 (쭉 타고 들어가면서 인접한 영역 모두 검사) 시계방향과 반시계를 거꾸로 구현했다 ㅎ d의 조건만 반대로 해주면 된다 평균은 크거나 작은 경우 다른 연산을 하므로 소수점까지 고려해서 실수로 구해줘야 된다. 각 판은 리스트로 구현해서 시계방향, 반시계방향 이동시 앞 뒤의 원소만 빼서 반대 위치에 넣어주면 된다. 배수이므로 x로 시작해서 x를 더해가며 판의..

[swexpert] 2112. 보호 필름 (dfs, 완탐, java)

dfs로 백트래킹하면서 구해주는 완탐 문제였다 몇 번째 열을 골라서 A 혹은 B로 칠해줄 건지 구해야되는데 나는 vis[행 번호]에 칠해줄 알파벳을 써줬다. 고른 행이 1개 이상이면 k개 이상이 연속인지 확인하는 함수에서 해당 열만 바꿔준 숫자로 비교해줘서 통과하면 가장 작은 cnt개수로 갱신해줬다. import java.util.Scanner; public class Solution { static int t,d,w,k; static int[][] map; static int[] vis;// 뿌릴 약품 종류를 지정한다. a(1), b(2) static int answer; public static void main(String[] args) { Scanner sc=new Scanner(System.in..

[프로그래머스] 가장 먼 노드 (javascript, bfs)

연결리스트를 만들어준 다음 bfs를 돌면서 각 단계의 큐의 개수로 answer를 업데이트해줬다. (각 단계의 노드 개수) function solution(n, edge) { const list={}; for(let i=0;i

[백준] 1713번 후보 추천하기 (java, 시뮬레이션, 구현)

www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1≤N≤20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대로 www.acmicpc.net 각 학생의 추천횟수를 저장하는 배열을 따로 만들어주고 정렬을 위한 학생 객체는 리스트로 만들어줘서 추가, 삭제가 용이하도록 하였다. package algo0419; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; class Student implements Comparable{ int num; int tot..

[백준] 17837번 새로운 게임2 (java, 시뮬레이션, 구현)

www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 말이 4개 이상 겹치면 탈출 chips라는 이차원 배열에 arraylist가 들어가게 해서 해당 위치에 칩 리스트를 만들어줬다. package algo0419; import java.util.ArrayList; import java.util.Scanner; class Horse{ int y,x,dir; public Horse(int y, int x, int dir) { super(); this.y = y; ..

[swexpert] 5607. 조합 (페르마의 정리, 재귀, java)

nCr = n! / r!(n-r)! 이다. 페르마의 정리는 A ^ (P-1) = 1이다. A ^ (P-2) = 1/A = A ^(-1) A = ( r!(n-r)! ) P= 문제에서 주어진수 = 1234567891 외우지 않으면 모르겠다.. package algo0419; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class S_5607_조합_Solution { static int t,n,r; static final long MOD=1234567891; static long[] fact; public static..