코딩테스트411 [BOJ] 2941 크로아티아 알파벳 1. 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 2. 풀이 line은 입력받은 문자열이다. 첫 번째 방법-> if문 활용하기 int count = 0; for (int i = line.length() - 1; i >= 0; i--) { count++; if(line.charAt(i)=='=') { i--; if(i-1>=0 && line.charAt(i)=='z' && line.charAt(i-1.. 코딩테스트/BOJ 2022. 2. 22. [BOJ] 1417 국회의원 선거 - JAVA 1. 문제 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 다솜이는 사람의 마음을 읽을 수 있는 기계를 가지고 있다. 다솜이는 이 기계를 이용해서 2008년 4월 9일 국회의원 선거를 조작하려고 한다. 다솜이의 기계는 각 사람들이 누구를 찍을지 미리 읽을 수 있다. 어떤 사람이 누구를 찍을지 정했으면, 반드시 선거 때 그 사람을 찍는다. 현재 형택구에 나온 국회의원 후보는 N명이다. 다솜이는 이 기계를 이용해서 그 마을의 주민 M명의 마음을 모두 읽었다. 다솜이는 기호 1번이다. 다솜이는 사람들의 .. 코딩테스트/BOJ 2022. 2. 22. [SWEA] 1238 Contact - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음에 연락한 사람이 주어지고, BFS식으로 점점 퍼져나가며 연락을 받는다. 마지막에 동시에 연락받은 사람 중 가장 큰 숫자를 가진 사람을 출력하면 된다. [제약 사항] 연락 인원은 최대 100명이며, 부여될 수 있는 번호는 1이상, 100이하이다. 단, 예시에서 5번이 존재하지 않듯이 중간 중간에 비어있는 번호가 있을 수 있다. 한 명의 사람이 다수의 사람에게 연락이 가능한 경우 항상 다자 간 통화를 통해 동시에 전달한다. 연락이 퍼지는 속도는 항상 일정하다 (전화를 받은 사람이 다음사람에게 전화를 거는 속도는 동일). 비상연락망 정보는 사전에 공유되.. 코딩테스트/SWEA 2022. 2. 22. [BOJ] 1759 암호만들기 - JAVA 1. 문제 https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o, u)과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. 조교들이 암호로 사용했을 법한 문자의 종류는 C가지가 있다고 한다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. C개의 문자들이 모두 주어졌을 때,.. 코딩테스트/BOJ 2022. 2. 22. [BOJ] 2606 바이러스 - JAVA 1. 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 출력하는 프로그램을 작성하시오. 2. 풀.. 코딩테스트/BOJ 2022. 2. 20. [BOJ] 1260 DFS와 BFS - JAVA 1. 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 2. 풀이 private static void bfs(int v) { visited[v].. 코딩테스트/BOJ 2022. 2. 20. [BOJ] 2840 행운의 바퀴 - JAVA 1. 문제 https://www.acmicpc.net/problem/2840 2840번: 행운의 바퀴 첫째 줄에 마지막 회전에서 화살표가 가리키는 문자부터 시계방향으로 바퀴에 적어놓은 알파벳을 출력한다. 이때, 어떤 글자인지 결정하지 못하는 칸은 '?'를 출력한다. 만약, 상덕이가 적어놓 www.acmicpc.net 2. 풀이 같은 알파벳이 여러 개 있을 수 없으므로 26칸 boolean배열을 만든다. 룰렛 배열은 ?로 초기화한다. 룰렛을 시계방향으로 돌린다는 건 반시계방향으로 화살표가 글자를 가리킨다는 뜻이다. 따라서 글자가 몇 번 바뀌었는지 받고 %N을 한 뒤에 (idx+N-(S%N))%N을 idx에 다시 저장한다. 현재 인덱스+N을 해준 건 %N을 해주었을 때 음수가 나오지 않게 하기 위한 것이다... 코딩테스트/BOJ 2022. 2. 20. [BOJ] 1063 킹 - JAVA 1. 문제 https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 행을 상징한다. 열은 가장 왼쪽 열이 A이고, 가장 오른쪽 열이 H까지 이고, 행은 가장 아래가 1이고 가장 위가 8이다. 킹은 다음과 같이 움직일 수 있다. R : 한 칸 오른쪽으로 L : 한 칸 왼쪽으로 .. 코딩테스트/BOJ 2022. 2. 20. [SWEA] 1247 최적경로 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 김대리는 회사에서 출발하여 냉장고 배달을 위해 N명의 고객을 방문하고 자신의 집에 돌아가려한다. 회사와 집의 위치, 그리고 각 고객의 위치는 이차원 정수 좌표 (x, y)로 주어지고 (0 ≤ x ≤ 100, 0 ≤ y ≤ 100) 두 위치 (x1, y1)와 (x2, y2) 사이의 거리는 |x1-x2| + |y1-y2|으로 계산된다. 회사의 좌표, 집의 좌표, 고객들의 좌표는 모두 다르다. 회사에서 출발하여 N명의 고객을 모두 방문하고 집으로 돌아오는 경로 중 가장 짧은 것을 찾으려 한다. 회사와 집의 좌표가 주어지고, 2명에서 10명 사이의 고객 좌표가.. 코딩테스트/SWEA 2022. 2. 20. [SWEA] 3234 준환이의 양팔저울 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 무게 추를 올릴 때 오른쪽 위에 올라가 있는 무게의 총합이 왼쪽에 올라가 있는 무게의 총합보다 더 커져서는 안 된다. 준환이가 양팔 저울에 모든 무게추를 올리는 방법은 총 몇 가지가 있을까? 2. 풀이 왼쪽 저울에 올라갈 순열을 찾는다. cnt==N이면 다 찾은 경우이므로 result에 1을 더한다. 경우의 수를 찾다가 중간에 이미 left가 나머지+right보다 더 크면 그 뒤의 경우의 수((N-cnt)! * 2^(N-cnt))를 전부 더해주고 끝낸다. 0부터 N-1 중에 이미 뽑은 추는 제외하고 나머지를 오른쪽, 왼쪽으로 저울에 올린다. (재귀호출).. 코딩테스트/SWEA 2022. 2. 20. [BOJ] 15683 감시 - JAVA 1. 문제 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 수 있다. CCTV는 감시할 수 있는 방향에 있는 칸 전체를 감시할 수 있다. 사무실에는 벽이 있는데, CCTV는 벽을 통과할 수 없다. CCTV가 감시할 수 없.. 코딩테스트/BOJ 2022. 2. 20. [BOJ] 3060 욕심쟁이 돼지 - JAVA 1. 문제 https://www.acmicpc.net/problem/3060 3060번: 욕심쟁이 돼지 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 두 줄로 구성되어 있고, 첫째 줄에는 하루에 배달되는 사 www.acmicpc.net 돼지는 원형 식탁에 앉아서 식사를 한다. 현수의 돼지들은 기억력이 뛰어나기 때문에 전 날 자신의 양쪽과 맞은편에 앉았던 돼지가 먹었던 양을 기억하고 있다. 또, 욕심도 많기 때문에, 그 만큼의 양을 추가하여 식사를 하기를 원한다. 매일 현수의 집에 신선한 사료가 N만큼 배달된다. 첫 날 돼지들이 먹었던 양이 주어졌을 때, 현수가 6마리의 돼지들의 요구를 들어줄 수 없게 되는 날이 몇 번.. 코딩테스트/BOJ 2022. 2. 18. 이전 1 ··· 27 28 29 30 31 32 33 ··· 35 다음