본문 바로가기

반응형

CODING

(42)
백준 [2675] 문자열 반복 - 자바 풀이 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 입력을 받으니 Scanner을 사용하고, T의 개수만큼 반복실행 해야하니 for문을 사용하면 되겠다. 실행할 케이스에는 두 가지 a, b를 따로 입력받으니 sc.nextInt() 혹은 sc.next()를 사용하면 되겠다. 근데 두 번째로 입력받은 b 문자열을 따로 분리해서 첫 번째 문자부터 a번 반복해 출력하는 것을 모든 문자열에서 반복하니 for문을 b의 문자열 길이만큼 b.length..
백준 [10813] 공 바꾸기 -자바 풀이 https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net N개의 수를 M번 반복하여 a,b의 수를 교환하는 문제이다. 우선 첫번째 줄에 N과 M을 입력받는다. 그리고 for문을 작성해서 배열 안에 1~N을 넣고 tmp를 사용해서 a와 b의 순서를 바꾸면 된다. if(a!=b) { arr[a] = b; arr[b] = a; } else { arr[a] = a; arr[b] = b; } 처음엔 tmp를 몰라서 이렇게 생각했으나 이러면 a=10, b=20일 때..
JAVA 두 변수의 값 바꾸기 tmp int a = 10, int b = 20일 때 두 변수에 담긴 값을 서로 바꾸기 위해서는 어떻게 해야 하는가? tmp를 몰랐을 때 처음 시도했던 것은 if문이다. if (a!=b) { a = b; b = a; } 하지만, 생각해 보면 a = b; 를 실행하면 이미 a의 값은 20이 될 것이고, 그 이후에 b = a; 를 실행되니 20=20 이 실행될 것이다. 그렇다면 어떻게 두 변수의 값을 교환할 수 있을까? tmp라는 임시저장소를 사용하는 것이다. tmp = a; a = b; b = tmp; int a = 10; int b = 20; 으로 가정한다면 //a=10, b=20, tmp=null; a의 값인 10을 왼쪽에 있는 tmp에 저장해 두고, //a=10, b=20, tmp=10; b의 값인 20을 ..
백준 [2562] 최댓값 - 자바 https://www.acmicpc.net/problem/2562 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 이전에 풀었던 N개가 주어질 때 조건을 구하는 식은 for문을 이용해 arr[]안에 주어진 N개의 수를 넣어 조건에 맞는 수를 arr[]에서 꺼내는 방법으로 해결했다. 이번에는 9개의 서로 다른 수가 주어질 때 최댓값을 찾는 문제이다. 9개의 수를 arr[] 안에 넣고, 그 중에 가장 큰 값을 출력하면 될 것 같다. 거기에 index 라는 매개변수를 만들어 for문..
백준 [10871] X보다 작은 수 - 자바 https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 구현 part 들어와 처음으로 도전하는 문제다. 지금까지 복습한 것은 입출력, if, for문 정도밖에 되지 않는다. 간단한 문제지만, 아직 나에겐 어렵다. 푸는 방식 첫째 줄에는 N과 X를 입력하고 둘째 줄에는 N개의 숫자를 입력한다. 그러면 둘째 줄에 입력된 수들 중 X보다 작은 수를 입력받은 순서대로 출력한다. 입력을 기다려야하니 Scanner을 사용하고, 입력된 수를 arr..
백준 15552번 빠른 A+B 자바 https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net BufferedReader 개념은 아직 생활코딩 강의에서 배우지 않았다.. 강의중에 있긴 하려나? 결국 내가 알아서 공부해서 습득하는 것이 맞다고 생각한다. 내가 매번 백준풀이하면서 도움을 받는 st-rab 님의 풀이를 참고했다. https://st-lab.tistory.com/30 [백준] 15552번 : 빠른 A+B - JAVA [자바] https://www.acmicpc.net/problem/15552 155..
백준 2349번 별찍기-2 자바 이번 문제는 지난번에 풀었던 별찍기의 두번째 문제이다. 지난번에는 3을 입력하면 * ** *** 이런 식으로 점점 늘어났는데, 이번에는 6을 입력하면 * ** *** **** ***** ****** 이런 식으로 반대모양의 삼각형이 주어진다. 어떻게 구현하면 될지 가이드라인을 먼저 잡아보자. for문에 for문을 넣어 사용하면 한 줄씩 출력하기가 가능할 것이다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); for(int i=1;i
백준 10951번 자바 JAVA 풀이 두 정수 a, b를 받아 더한 값을 출력하는 방법을 묻는 문제이다. a+b -4 인 만큼, 더하는 법은 알게 되었는데 이전 예제들처럼 for문을 쓰기 위해서는 몇 번을 반복했는지를 나타내는 첫 줄이 필요하다. 몇 번 반복해야 하는지 알려주지 않을 때 어떻게 해결할래?라고 묻는 문제인 것이다. 반복문은 for문 말고 while문이 있다. while(조건){} 으로 적는 방식이다. 이때 조건에 무엇을 넣을지 생각해봐야 한다. while(true) 혹은 while(a
백준 10172번 자바 JAVA 풀이 https://www.acmicpc.net/problem/10172
백준 10171번 자바 JAVA 풀이 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 백준 고양이를 출력하는 문제이다. public class Main { public static void main(String[] args) { System.out.println("\\ /\\"); System.out.println(" ) ( ')"); System.out.println("( / )"); System.out.println(" \\(__)|"); } } 이 문제에서 포인트는 System.out.println(); 괄호 안에 "" 큰따옴표를 사용해야 하고, \나 " 가 문자열 안에 존재하면 혼동이 올 수 있으니 앞에 \를 한번 더 적어야 ..

반응형