문제 소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 있을 때, a를 1로, b를 2로, …, z를 26으로, A를 27로, …, Z를 52로 하여 그 합을 구한다. 예를 들어 cyworld는 합을 구하면 100이 되고, abcd는 10이 된다. 이와 같이 구한 수가 소수인 경우, 그 단어를 소수 단어라고 한다. 단어가 주어졌을 때, 그 단어가 소수 단어인지 판별하는 프로그램을 작성하시오. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 20자 이하이다. 주어지는 단어는 알파벳 소문자와 대문자만으로 이루어져 있다. 출력 아래의 예제와 같..
예외 클래스? 실행중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 것을 막기 위해 예외 처리를 한다. 프로그램에서 처리하는 예외 클래스의 최상위 클래스는 Exception 클래스 이다. 시스템 오류 & 예외 1. 시스템 오류(Error) : 개발자가 제어 할 수 없음 2. 예외(Exception) : 프로그램에서 제어 가능 (try ~ catch ~ finally 블록) 예) 프로그램에서 파일을 읽을 수 없는 경우, 네트워크로 데이터를 주고 받고자 하는데 네트워크가 연결이 안된 경우, 배 열 값을 출력하고자 하는데 배열 요소가 없는 경우 등 ArrayIndexOutOfBoundException 배열 범위 초과에 대한 예외 처리 public class Main { public static ..
멀티 스레드를 이용하여 한 캐릭터가 죽을 때 까지 실행하는 프로그램 만들기! 캐릭터는 전사(warrior)와 마법사(wizard)를 만들겠습니다. 능력치는 객체 생성할 때 설정하도록 하겠습니다. 설계 내용 상속과 인터페이스 적용 스레드 동작 확인 게임 캐릭터를 생성하고 스레드를 통해 실시간 전투 진행 Main import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("강력한 체력과 물리 공격력의 전사 이름을 정하세요 : "); String warriorName = sc.next(); System.out.print..
문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 처음에 제출한 코드가 틀려서 질문 게시판을 찾아보니!!! 공백 입력시 0이 나와야 한다는 답변을 보고 머리를 쳤다. 답변 주신 분 감사합니다. 해서 코드를 끄적끄적 고치고 난 뒤 정답 확인! import java.util.Sc..
해당 문제는 백준 1110번 문제이고, 블로그에도 올렸었는데 오늘 강사님께서 이 문제를 내주셔서! 오랜만에 다시 한 번 더 풀게 되었습니다. 블로그에 올릴까 말까 했는데, 나름의 또 시행착오가 있어서 복기하고자 올려봅니다. 1. 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 ..
문제 10진수가 주어지면 2진수로 변경하고 이를 다시 10진수로 변경 합니다. 입력 10 출력 1010 10 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { double sum = 0; ArrayList arr = new ArrayList(); ArrayList arr2 = new ArrayList(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); while(true) { arr.add(n % 2); n /= 2; if(n < 1) break; } for(int i = arr.size() ..
안녕하세요? 일주일이 또 순식간에 지나가고 주말이 왔습니다. 주말엔 뭐다? 이것저것 혼자서 우당탕탕 뭐라도 만드는 시간이다.🤓 저번 주에 유튜버 나도코딩님의 영상을 보고 Pong 게임을 만들었었는데요. 말미에 다음엔 피카츄 배구게임으로 돌아오겠다고 했었죠. 호기롭게 말하고 나서 막상 구현하려니 어려워서 조금 시간이 걸렸습니다. 심지어 굉장히 엉성합니다. ^^;; 코드 정리를 좀 깔끔하게 해야 하는데 그러지 못하고 올리게 되었습니다. 혹시 보시고 의견이 있으신 분은 댓글 달아주시면 감사드리겠습니다!! 규칙 공이 스테이지에 닿으면 상대편 점수 증가하고, 캐릭터 위 쪽에서 등장 점수 5 되면 게임 종료 좌/우 로만 이동 가능 🐶 1p : a(좌) d(우) space(가속) 🐶 2p : ←(좌) →(우) ent..
멀티 스레드(Multi Thread)? 하나의 프로그램에서 여러가지 일을 동시에 수행하는 것 When code running in some thread creates a new Thread object, the new thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only if the creating thread is a daemon. Main Thread 💡모든 자바 어플리케이션은 Main Thread가 main() 메소드를 실행하면서 시작됩니다. 💡스레드는 운영체제가 실행시키기 때문에 약간의 텀이 있음 싱글 스레드는 메인 스레드가 종료되면 프로세..
문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. 내 코드(답안) import java.util.Scanner; public class Main { public static void main(String[] args) { int[] num = new int[3]; Scanner sc = new Scanner(System.in); ..
Stack? LIFO(Last in First Out) 구조, 스택을 이용한 대표적인 예시로 JVM의 스택 메모리를 들 수 있습니다. 스택 메모리에 저장된 변수는 나중에 저장된 것 부터 먼저 제거 됩니다. 스택은 내부적으로 Vector 클래스를 상속 받아 만들어 졌습니다. 프로그램 내에서 메소드의 호출이 쌓이는 구조에 사용 됩니다. 입력과 출력이 한 곳에서만 일어납니다. 관련 메소드 push() : 객체를 저장 합니다. public E push(E item) peek() : 스택 맨 위의 값 확인 pop() : 스택의 맨 위의 값을 추출하면서 보여줌 public E pop() ➡️ Removes the object at the top of this stack and returns that object a..