이 영역을 누르면 첫 페이지로 이동
Stranger's LAB 블로그의 첫 페이지로 이동

Stranger's LAB

페이지 맨 위로 올라가기

Stranger's LAB

프로그래밍과 관련하여 다양한 알고리즘 문제를 풀어보고, 프로그래밍 언어를 이해해 볼 수 있도록 돕고자 만든 블로그 입니다.

java

  • Stranger's LAB
[백준] 1018번 : 체스판 다시 칠하기 - JAVA [자바]

[백준] 1018번 : 체스판 다시 칠하기 - JAVA [자바]

2020.05.26
www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 어떤 크기로 주어지던, 최소로 칠할 수 있는 8×8 크기를 찾아내야 한다. 알고리즘 [접근 방법] 어려운 문제는 아니다. 체스판을 만들기 위해서는 한 칸이 상하좌우의 색과 다르면 된다. 또한 체스판이 잘못 칠해져 있는 경우 '최소'의 개수로 칠 할 수 있는 부분을 찾아야 한다. 경우의 수는 (가로 칸 개수 - 7) × (세로 칸 개수 - 7) 이다. 그림으로 본다..
[백준] 7568번 : 덩치 - JAVA [자바]

[백준] 7568번 : 덩치 - JAVA [자바]

2020.05.21
www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩� www.acmicpc.net 문제 매우 간단한 문제다! ※ 주의할 점 키와 몸무게가 모두 클 때에만 '덩치가 크다' 라고 정의하고 있다. 알고리즘 [접근 방법] 이번에도 역시 브루트포스를 이용하여 푸는 문제다. 먼저 문제를 보면 '덩치가 크다'는 기준은 키와 몸무게가 모두 비교하려는 대상보다 클 때이다. 즉, 어느 한 쪽이라도 만족 못할 경우 덩치가 크다고 할 수 없다. 그럼 브루트포스로 어떻게 풀 수 있을까? 일단 키와 몸무..
[백준] 2231번 : 분해합 - JAVA [자바]

[백준] 2231번 : 분해합 - JAVA [자바]

2020.05.20
www.acmicpc.net/problem/2231 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+ www.acmicpc.net 문제 이번 문제도 브루트포스를 이용하여 푸는 문제다! 알고리즘 [접근방법] 문제가 그리 어렵지 않다. 198 = 198 + 1 + 9 + 8 = 216 예로들어 198 이라는 생성자가 주어졌을 때 198 의 분해합은 198 + 1 + 9 + 8 = 216 이다. 반대로 216 의 생성자는 여러가지가 있다. 예로들어 앞선 예제처럼 198 이 될 수도 있고 207 이 될 수도 있다. 즉, ..
[백준] 2798번 : 블랙잭 - JAVA [자바]

[백준] 2798번 : 블랙잭 - JAVA [자바]

2020.05.19
www.acmicpc.net/problem/2798 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 �� www.acmicpc.net 문제 문제가 그리 어렵지 않다! 알고리즘 [접근 방법] 브루트 포스 (Brute Force) 카테고리의 첫 문제다. 브루트 포스.. 난폭한(무식한) 힘이라는 의미 그대로 어떤 값을 찾아내기(또는 목적을 달성하기) 위해 무차별적으로 대입해보는 방법이다. 말 그대로 무식한 방법이다. (일명 노가다..) 이 알고리즘의 가장 큰 특징은 가능한 모든 경우의 수를 대입해보며 조건에 만족하는 값만을 찾아낼 수 있다는 점이다. ..
[백준] 11729번 : 하노이 탑 이동 순서 - JAVA [자바]

[백준] 11729번 : 하노이 탑 이동 순서 - JAVA [자바]

2020.05.16
www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 문제 백준 단계별로 풀어보기의 재귀 문제 중 마지막 문제다. 알고리즘 [접근 방법] 이전의 재귀 문제를 그동안 풀어봤다면 이번 문제는 그리 어렵지 않은 문제다. 직전 문제인 별찍기 10 에서도 볼 수 있듯이 재귀를 통해 '가장 작은 단위' 가 될 때 까지 재귀호출을 하고, 가장 작은 단위까지 호출이 되었으면, 거기서 구현한 연산을 실행하면 된다. 이 문제도 같은 원리다. 하노이탑 개수와 상관없이, ..
[백준] 2447번 : 별 찍기 - 10 - JAVA [자바]

[백준] 2447번 : 별 찍기 - 10 - JAVA [자바]

2020.05.16
www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 � www.acmicpc.net 문제 알고리즘 [접근 방법] 필자가 이 문제를 푼 것은 좀 오래전이지만 근래 작성한 문제 중에 가장 설명하기 어려운 문제였다. 어떻게 설명해야하는지 고민을 좀 많이 했던지라.. 또한 규칙은 쉽게 보이지만 이를 구현하자니 필자도 꽤 고민했던 문제이기도 했다. (근데 정답률이 어떻게 50% 가까이 되는지 정말 신기하다.. 막상 질문하는 사람은 많은데..?) 여하튼 차근차근 한 번 풀어..
[백준] 10870번 : 피보나치 수 5 - JAVA [자바]

[백준] 10870번 : 피보나치 수 5 - JAVA [자바]

2020.05.13
www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 �� www.acmicpc.net 문제 재귀에 대한 이해만 있다면 매우 간단한 문제다! 물론 재귀함수를 쓰지 않고 배열로도 가능하니 한 번 같이 보자. 알고리즘 [접근 방법] 이 문제의 경우에는 사실 문제설명에서 다 주었다. 피보나치 수 부터 설명을 하자면 첫번째 항이 0 부터 시작할 경우 첫번째 항은 0, 두번째 항은 1부터 시작하여, 다음 항은 직전 항과 직전 항의 직전 항의 합으로 이루어진 수열을..
[백준] 10872번 : 팩토리얼 - JAVA [자바]

[백준] 10872번 : 팩토리얼 - JAVA [자바]

2020.05.11
www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 재귀에 대한 문제를 처음 접할 때 가장 먼저 접하는 문제중 하나가 아닐까 싶다. 매우 쉬운 문제이니 어렵지 않게 풀 수 있을 것이다. 알고리즘 [재귀] 재귀를 프로그래밍으로 처음 접하는 분들은 수학적으로는 익숙하더라도 코딩에서는 매우 생소할 수도 있다. 컴퓨터에서 재귀는 자신을 정의할 때 자기 자신을 재 참조하는 방법을 재귀라고 한다. 그림으로 보면 아주 간단하게 아래와 같다. 이런식으로 func 이라는 함수를 정의할 때, func 함수 안에 func 을 호출하고 그 호출 한 func 안에 func 을 참조하..
자바 [JAVA] - 스캐너(Scanner) 클래스와 입력

자바 [JAVA] - 스캐너(Scanner) 클래스와 입력

2020.05.07
자바를 처음 배울 때 아마 대부분은 키보드로 입력받기 위해 Scanner 라는 클래스를 썼을 것이다. 자바 외에도 다양한 언어들은 각각의 입력방식이 있고, 각 언어별로 대표하는 대중적인 입력방식이 하나씩 있다. 예로 들면 C언어의 경우 scanf() 가 있을 것이고 파이썬의 경우 input(), C++ 은 cin, C# 은 Console.readLine() 등이 있다. 자바에서도 여러가지 입력방법이 입력방법이 있는데, 그중 가장 쉬우면서도 대중적인 입력 중 대표적인 것이 바로 Scanner 클래스를 이용한 입력이다. 이번 포스팅에서는 Scanner 의 사용 방법에 대해 자세하게 알아보자. Scanner 클래스의 특징 기본적인 데이터 타입들을 Scanner 의 메소드를 사용하여 입력받을 수 있다. 예로 들..
[백준] 9020번 : 골드바흐의 추측 - JAVA [자바]

[백준] 9020번 : 골드바흐의 추측 - JAVA [자바]

2020.05.05
https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. www.acmicpc.net 문제 소수를 이용한 문제다. 문제는 그리 어렵지 않으니 한 번 보면 금방 이해될 것이다. ※ 주의할 점 2보다 큰 짝수가 주어질 때..
  • 최신
    • 1
    • ···
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • ···
    • 21
  • 다음

정보

Stranger's LAB 블로그의 첫 페이지로 이동

Stranger's LAB

  • Stranger's LAB의 첫 페이지로 이동

검색

나의 외부 링크

  • st-github

공지사항

  • 공지 - 블로그 사용 설명서

메뉴

  • 홈
  • 방명록

카테고리

  • 전체 카테고리 (267)
    • Java (5)
    • JAVA - 백준 [BAEK JOON] (177)
      • 입출력과 사칙연산 (14)
      • 조건문 (7)
      • 반복문 (11)
      • 1차원 배열 (7)
      • 함수 (3)
      • 문자열 (10)
      • 기본 수학 1 (8)
      • 기본 수학 2 (6)
      • 2차원 배열 (0)
      • 정렬 (10)
      • 재귀 (4)
      • 브루트 포스 (5)
      • 집합과 맵 (0)
      • 기하 1 (5)
      • 정수론 및 조합론 (12)
      • 백트래킹 (8)
      • 동적 계획법 1 (15)
      • 누적 합 (0)
      • 그리디 알고리즘 (5)
      • 스택 (5)
      • 큐, 덱 (7)
      • 분할 정복 (9)
      • 이분 탐색 (7)
      • 기타 문제 (17)
      • 별 찍기 문제 모음 (2)
    • C++ - 백준 [BAEK JOON] (46)
      • 입출력과 사칙연산 (14)
      • 조건문 (7)
      • 반복문 (11)
      • 1차원 배열 (7)
      • 함수 (3)
      • 문자열 (0)
      • 기타 문제 (4)
    • 자료구조 (18)
      • Java (18)
    • 알고리즘 (11)
      • Java (11)
    • 프로그래밍 기초 (6)
    • 이모저모 (2)
    • 일상의 글 (2)

최근 글

정보

ST_의 Stranger's LAB

Stranger's LAB

ST_

블로그 구독하기

  • 구독하기
  • 네이버 이웃 맺기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © ST_.

티스토리툴바