목록자료구조&알고리즘/BOJ (8)
OneDev

[문제] B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 [입력] 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다. [출력] 첫째 줄에 B진법 수 N을 10진법으로 출력한다. ① B 진법 수 N 을 문자열로 받는다 ② N의 각 자리의 문자를 B 진법에 맞게 바꿔 결과값에 담는다 import java.util.Arrays; import java.util.Scanner; public class..
※ 풀이 1. 각 테스트 케이스 마다 반복 횟수 R 과 문자열 S 가 주어진다 2. 문자열 S 의 모든 문자를 R 번 반복해 출력해야한다. 3. 이를 위해 한 문자 C 를 R 번 반복하는 메소드를 만들었고, 4. 문자열 S 의 각 인덱스 별로 해당 메소드를 호출하였다. ※ 소스코드 package BOJ; import java.util.Scanner; public class BOJ_2675 { // 특정 문자 c 를 r 번 출력하는 메소드 public static void repeatLetter(char c, int r) { int i = 0; while (i < r) { System.out.print(c); i++; } } public static void main(String[] args) { Scan..
문자열이 주어졌을 때, 그 문자열이 팰린드롬인지 아닌지 판별하는 함수를 정의해 풀이하였다. 시작 index는 1씩 증가, 끝 index는 1씩 감소시키며 문자들을 비교한다. 반복문이 종료될 때 까지 비교한 모든 문자들의 쌍이 같으면 팰린드롬이므로 1을 리턴하고, 하나라도 다른 쌍이 나오면 바로 반복문을 종료하고 0을 리턴한다. 이때 끝 index 를 ( 문자열의 길이 - 1 ) 로 잡아야함에 유의한다. #define _CRT_SECURE_NO_WARNINGS #include #include int is_palindrome(char*); int main() { char str[101]; scanf("%s", str); printf("%d", is_palindrome(str)); return 0; } int..
[ 풀이 ] 주어진 문자열의 처음과 끝을 출력해야한다. 문자열 끝의 경우 헤더에서 제공하는 strlen() 함수를 이용해 문자열의 길이를 구해 풀이하였다. 이 때 인덱스를 (길이 -1) 로 해줘야 함에 유의한다 ( 문자열의 마지막은 널문자이기 때문) #include #include int main() { int t; char str[101]; scanf("%d", &t); while (t--) { scanf("%s", str); printf("%c%c \n", str[0], str[strlen(str) - 1]); } return 0; }
※ 풀이 (1) 가로, 세로의 길이가 100인 정사각형의 흰색 도화지를 100 x 100 행렬로 선언합니다. 초기화는 하지 않은 int 배열이므로 초기값은 0으로 저장됩니다. (2) 구하고자 하는 값(=넓이) 를 저장할 변수 area 를 선언합니다 (3) 색종이의 개수를 입력받고 (4) 입력받은 개수만큼 반복문을 돌려 흰색도화지(0) 검은 색종이에 해당하는 부분만큼을(1)로 값을 바꿔줍니다 (5) 바꿔주는 과정마다(0 → 1) 넓이를 1 증가 시킵니다 (6) 모든 반복이 종료되었을 때 넓이를 출력합니다 ※ 소스코드 package BOJ; import java.util.Scanner; public class B2563 { public static void main(String[] args) { int[][..

https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net ◎ 입력 첫째 줄에 테스트케이스의 개수 T가 주어진다. (1≤T≤1000) 둘째 줄부터 T개의 줄에 알파벳 대문자로 구성된 문자열 S가 주어진다. (1≤|S|≤1000) ◎ 출력 각 테스트케이스마다 isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. ◎ 풀이 문제 하단부에 Hint 로 주어진 recursion 메소드와 isPalindrome 메소드를 직접 구현할 필요가 없어 비교적 쉽게 ..

Hello World! 문자열을 출력하는 문제입니다. 어려운 문제는 아니지만, 백준 사이트의 경우 public class 이름을 Main 이라 해주셔야합니다. 아마 틀린 분들 중 대다수가 (제가 그랬습니다...) public class 명을 어떻게 해줘야 할지 몰랐던게 아닐까 싶습니다 public class Main{ public static void main(String[] args){ System.out.println("Hello World!"); } }

두 개의 행렬을 입력받아 각각의 원소들을 더한 뒤 출력하는 문제이다. (풀이 1) n 과 m이 100보다 작거나 같은 정수이기 때문에 100 x 100 의 배열을 만들어 더하는 방법이 있다. #include using namespace std; int a[101][101], b[101][101], n, m; // 크기가 100 x 100 인 배열 A, B 선언 int main() { cin >> n >> m; for (int i = 1; i a[i][j]; for (int i = 1; i b[i][j]; for (int i = 1; i > a[i][j]; } } for (int i = 0; i > ..