728x90

2024/06 61

[백준 자바] 2153번(소수 단어)

난이도 - 브론즈 2문제소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자.알파벳 대소문자로 이루어진 영어 단어가 하나 있을 때, a를 1로, b를 2로, …, z를 26으로, A를 27로, …, Z를 52로 하여 그 합을 구한다. 예를 들어 cyworld는 합을 구하면 100이 되고, abcd는 10이 된다.이와 같이 구한 수가 소수인 경우, 그 단어를 소수 단어라고 한다. 단어가 주어졌을 때, 그 단어가 소수 단어인지 판별하는 프로그램을 작성하시오.입력첫째 줄에 단어가 주어진다. 단어의 길이는 20자 이하이다. 주어지는 단어는 알파벳 소문자와 대문자만으로 이루어져 있다.출력아래의 예..

백준/Java 2024.06.22

[백준 자바] 8741번(이진수 합)

난이도 - 브론즈 2문제세계적인 이진수 매니아 현수는 오늘도 이진수를 연구하고 있다.오늘은 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구해보려고 한다.k가 주어졌을 때, 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구하는 프로그램을 작성하시오.입력첫째 줄에 k가 주어진다. (1 ≤ k ≤ 106)출력첫째 줄에 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 이진수로 출력한다.  처음 구상은 k자리의 최대 2진수("1".repeat(k))를 10진수로 변환하여 1부터 10진수까지의 합을 구하고 그 값을 2진수로 변환하는 거였다. 하지만 이렇게 하니 for문이 많이 돌아 시간초과가 발생했다. 다른 방법을 모색하던 중 출력값들 사이의 규칙을 발견했다.k=1일 때 출력값 =>..

백준/Java 2024.06.21

[React] TicTacToe앱 만들기(3) - 게임 동작 기록, jumpTo()

1. 게임 동작 기록하기게임 동작을 기록하기 위해 History 배열을 생성하고 squares 배열이 동작할 때마다 squares 배열을 history 배열에 저장한다.우선 최상위 컴포넌트에 history state를 추가하고, Board 컴포넌트의 sIsNext state와 winner 관련 코드들을 최상위 컴포넌트로 옮긴다.function App() {  const [history, setHistory] = useState([{ squares: Array(9).fill(null) }]);  const [xIsNext, setXIsNext] = useState(true);    const calculateWinner = (squares) => {    const lines = [      [0, 1, ..

Frontend/React 2024.06.20

[백준 자바] 12813번(이진수 연산) - and, or, xor, not

난이도 - 브론즈 2문제총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오.입력첫째 줄에 이진수 A, 둘째 줄에 이진수 B가 주어진다. 두 이진수의 길이는 모두 100,000이다. 예제의 경우에만 길이가 10이며, 예제는 채점하지 않는다.출력첫째 줄부터 한 줄에 하나씩 차례대로 A & B, A | B, A ^ B, ~A, ~B를 출력한다.  AND둘 다 1일 때만 연산 결과가 1OR둘 다 0일 때만 연산 결과가 0XOR두 값이 다르면 1, 같으면 0NOT해당 값이 0이면 1, 1이면 0import java.io.*;public class Main12813 { public static void m..

백준/Java 2024.06.20

[백준 자바] 2729번(이진수 덧셈)

난이도 - 브론즈 1문제이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십진수 덧셈은 외워야 할 덧셈이 많지만, 이진수 덧셈은 아래와 같이 5가지만 기억하면 된다.0 + 0 = 01 + 0 = 10 + 1 = 11 + 1 = 101 + 1 + 1 = 11두 이진수가 주어졌을 때, 그 합을 이진수로 출력하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 수 T(1출력각 테스트 케이스에 대해 입력으로 주어진 두 이진수의 합을 구해 이진수로 출력한다. 숫자의 앞에 불필요한 0이 붙으면 안 된다.  로직은 1252번에 사용한 코드와 같다.2024.06.20 - [백준/..

백준/Java 2024.06.20

[백준 자바] 1252번(이진수 덧셈) - 정규표현식, String.format()

난이도 - 브론즈 2문제두 개의 이진수를 입력받아 이를 더하는 프로그램을 작성하시오.입력첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다.출력첫째 줄에 이진수 덧셈 결과를 출력한다. 결과가 0인 경우를 제외하고는 출력되는 이진수는 항상 1로 시작해야 한다.  입력받은 2진수의 앞에 있는 모든 '0'을 제거한다.2진수의 길이가 0이 되면 2진수를 '0'으로 설정한다.binarySum()두 2진수의 길이를 맞춘다. 더 짧은 2진수의 앞에 부족한만큼 '0'을 채운다.더하기 수행: b1.charAt(i) + b2.charAt(i) + carry (carry는 처음에는 뒤에서 넘어오는..

백준/Java 2024.06.20

[백준 자바] 2226번(이진수)

난이도 - 골드 4문제0과 1로 구성된 이진수가 있다. 이 이진수에서 0을 10으로, 1을 01로 동시에 치환하면 길이가 두 배인 이진수를 얻을 수 있다. 이러한 이진수들을 차례로 나열하면 하나의 이진수 수열이 된다. 편의상 시작 수는 1이라고 하자. 처음 몇 개의 이진수들을 구해 보면,1 → 01 → 1001 → 01101001 → …이 된다.N이 주어졌을 때, N번째 이진수에서 연속된 0들의 그룹이 몇 개나 있는지 알아내는 프로그램을 작성하시오. N=4일 경우의 이진수는 01101001이고, 따라서 이 안에는 연속된 0들이 세 그룹 있게 된다.입력첫째 줄에 정수 N(1 ≤ N ≤ 1,000)이 주어진다.출력첫째 줄에 답을 출력한다.  2진수를 나열하고 0의 그룹 개수를 찾는 코드를 작성하면 메모리 초..

백준/Java 2024.06.20

[백준 자바] 1550번(16진수) - 16진수를 10진수로 바꾸기

난이도 - 브론즈 2문제16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오.입력첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.출력첫째 줄에 입력으로 주어진 16진수 수를 10진수로 변환해 출력한다.  0~F를 문자열로 저장하여 16진수의 각 자리에 해당하는 문자와 일치하는 문자열의 인덱스에 16의 거듭제곱 값을 곱한다.import java.io.*;public class Main1550 { public static void main(String[] args) throws Exception { BufferedReader br = new Buffered..

백준/Java 2024.06.19

[백준 자바] 3460번(이진수) - '1' 위치 찾기

난이도 - 브론즈 3문제양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. (1 ≤ T ≤ 10, 1 ≤ n ≤ 106)출력각 테스트 케이스에 대해서, 1의 위치를 공백으로 구분해서 줄 하나에 출력한다. 위치가 낮은 것부터 출력한다.  2진수로 바꾸는 과정에서 n%2가 0이 나올 때마다 그 위치(index)를 저장한다.import java.io.*;public class Main3460 { public static void main(String[] args) th..

백준/Java 2024.06.19

[백준 자바] 11179번(2진수 뒤집기)

난이도 - 브론즈 1문제희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은... 선생님은 칠판에 뺄셈을 설명하고 있어서 희연이는 수업에 흥미가 없다. 칠판에 있는 수들을 역 이진법으로 나타낸 수들로 같은 계산을 수행하는 것이 가능할까? 희연이는 몽상을 하며 시간을 보냈고, 머릿속으로 역 이진법 표시 프로그램을 구상하기 시작했다. 수업이 끝나는대로 희연이는 집에가서 컴퓨터에 그것들을 적을 것이다.당신이 할 일은 역 이진법 프로그램을 작성하는 것이다. 예를 들어 13을 2진법으로 나타내면 1101이고, 이것을 뒤집으면 1011이 된다. 이 수를 다시 10진법으로 나타내면 11이..

백준/Java 2024.06.19
728x90