문제세 수 A, B, C를 입력 받은 다음, ( ( ( ( A XOR B ) XOR B ) XOR B ) … ) XOR B 형태로 연산을 C회 했을 때의 결과값을 출력하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/12833입력첫째 줄에 A, B, C가 주어진다. (0 출력첫째 줄에 계산된 결과를 출력한다.예제# input13 3 1# output14문제 풀이A, B, C = map(int, input().split())answer = A# C가 홀수일 경우에만 XOR 연산 수행 (XOR 연산은 짝수 번 하면 원래 값으로 돌아옴)for _ in range(C%2): answer ^= B print(answer)파이썬을 독학하시는 분들에게 도움이 되길 바라며..
Python/BOJ
문제희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은... 선생님은 칠판에 뺄셈을 설명하고 있어서 희연이는 수업에 흥미가 없다. 칠판에 있는 수들을 역 이진법으로 나타낸 수들로 같은 계산을 수행하는 것이 가능할까? 희연이는 몽상을 하며 시간을 보냈고, 머릿속으로 역 이진법 표시 프로그램을 구상하기 시작했다. 수업이 끝나는대로 희연이는 집에가서 컴퓨터에 그것들을 적을 것이다. 당신이 할 일은 역 이진법 프로그램을 작성하는 것이다. 예를 들어 13을 2진법으로 나타내면 1101이고, 이것을 뒤집으면 1011이 된다. 이 수를 다시 10진법으로 나타내면 11이다. https:/..
문제소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 있을 때, a를 1로, b를 2로, …, z를 26으로, A를 27로, …, Z를 52로 하여 그 합을 구한다. 예를 들어 cyworld는 합을 구하면 100이 되고, abcd는 10이 된다. 이와 같이 구한 수가 소수인 경우, 그 단어를 소수 단어라고 한다. 단어가 주어졌을 때, 그 단어가 소수 단어인지 판별하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/2153입력첫째 줄에 단어가 주어진다. 단어의 길이는 20자 이하이다. 주어지는 단어는 알파벳..
문제이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십진수 덧셈은 외워야 할 덧셈이 많지만, 이진수 덧셈은 아래와 같이 5가지만 기억하면 된다. 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 1 + 1 + 1 = 11두 이진수가 주어졌을 때, 그 합을 이진수로 출력하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/2729입력첫째 줄에 테스트 케이스의 수 T(1출력각 테스트 케이스에 대해 입력으로 주어진 두 이진수의 합을 구해 이진수로 출력한다. 숫자의 앞에 불필요한 0이 붙으면 안 된다.예제# input3..
문제상근이는 매일 아침 영자 신문을 학교에 가져와서 읽는다. 하지만, 상근이의 눈은 점점 나빠졌고, 더 이상 아침 신문을 읽을 수 없는 상황에 이르렀다. 상근이는 스캐너를 이용해서 글자를 확대한 다음에 보려고 한다. 신문 기사는 글자로 이루어진 R*C 행렬로 나타낼 수 있다. 글자는 알파벳과 숫자, 그리고 마침표로 이루어져 있다. 스캐너는 ZR과 ZC를 입력으로 받는다. 이렇게 되면, 스캐너는 1*1크기였던 각 문자를 ZR*ZC크기로 확대해서 출력해 준다. 신문 기사와 ZR, ZC가 주어졌을 때, 스캐너의 스캔을 거친 결과를 구하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/3035입력첫째 줄에 R, C, ZR, ZC가 주어진다. R과 C는 1과 50 사이의 정수이고..
문제문제는 매우 간단하다. N을 N번 출력하는 프로그램을 작성하여라. 다만, 답이 길어지는 경우 답의 앞 M자리만 출력한다. https://www.acmicpc.net/problem/11944입력첫 번째 줄에는 N, M이 주어진다. (1 ≤ N, M ≤ 2016)출력N을 N번 출력한다. 만약 답이 길어지면 답의 앞 M자리를 출력한다.예제# input20 16# output2020202020202020문제 풀이N, M = input().split()answer = N * int(N)print(answer[:int(M)])파이썬을 독학하시는 분들에게 도움이 되길 바라며,혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
문제같은 길이의 성냥개비가 여러 개 주어져 있다. 이것들을 평면에 늘어놓아서 삼각형을 만들려고 한다. 삼각형의 한 변은 여러 개의 성냥개비를 직선으로 이어서 만들 수 있지만, 성냥개비를 꺾거나 잘라서 변의 한 부분을 만들 수는 없다. 성냥개비의 개수가 주어졌을 때, 이들 성냥개비를 사용하여 만들 수 있는 서로 다른 삼각형의 개수를 구하는 프로그램을 작성하시오. 예를 들어서 9개의 성냥개비로 만들 수 있는 서로 다른 삼각형은 그림 1과 같이 3가지이다. "> 1. 주어진 성냥개비는 모두 사용하여 하나의 삼각형을 만들어야 한다. 2. 삼각형을 한 개도 만들 수 없으면 0을 출력한다. 예를 들어서, 주어진 성냥개비의 수가 1, 2, 또는 4인 경우에는 삼각형을 한 개도 만들 수 없다. 3. 합동인 삼각형들은 ..
문제두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/15792입력첫째 줄에 A와 B가 주어진다. (0 출력첫째 줄에 A/B를 출력한다.예제# input1 3# output0.33333333333333333333333333333333# input4 5# output0.8문제 풀이a, b = map(int, input().split())print(a//b, end='')remainder = a%bif remainder: print('.', end='') for _ in range(1000): remainder *= 10 print(remainder // b, end='') ..
문제N개의 칸에 1 부터 N 까지의 수들이 왼쪽부터 순서대로 저장되어 있다. 또, 각 칸은 왼쪽부터 1 부터 N까지 순서대로 번호가 붙어 있다. 즉, 처음에는 각 칸의 번호와 각 칸에 저장된 수가 같다. 아래 그림은 N = 7일 때의 예이다.">다음 작업을 수가 정확히 하나가 남을 때 까지 반복한다. (A) 홀수번 칸의 수들을 모두 지운다 (B) 남은 수들을 왼쪽으로 모은다. 제일 첫 작업의 (A) 단계가 끝나면 칸들의 상태는 다음과 같을 것이다.">(B) 단계가 끝나면 다음과 같을 것이다. ">두번째 작업이 진행되면 칸들은 아래 두 그림과 같이 바뀔 것이다. ">이제 수가 하나 남았으므로 작업은 더 이상 진행되지 않는다. N을 입력으로 받아 위와 같이 작업을 진행했을 때 마지막으로 남는 수를 계산하는 ..
문제윤정이는 뭐든지 아름다운 것이 좋다고 생각한다. 그래서 윤정이는 사물을 볼 때 자신이 정한 방법으로 아름다운 정도를 평가한다. 윤정이는 수를 볼 때도 이런 아름다운 수의 정도를 따지는데, 윤정이에게 있어서 아름다운 수의 정도는 그 수를 이루고 있는 10진수의 서로 다른 숫자의 개수를 의미한다. 예를 들어 122이라는 수는 1과 2 라는 2개의 숫자로 이루어져 있으므로 아름다운 정도가 2가 된다. 윤정이의 방법으로 여러 수들의 아름다운 정도를 알아보자. https://www.acmicpc.net/problem/2774입력첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 다음 줄부터는 아름다운 정도를 알고 싶은 수 X(1 ≤ X ≤ 1000000000)가 주어진다.출력각각의 테스트 케이스마다 X의 아름..