[문제] “나는 행복합니다~ 한화라서 행복합니다~” 행복한 이 노래 가사! 그렇다. 욱제는 한화 이글스의 열렬한 이다. 욱제는 여름방학을 맞아 치킨과 맥주를 챙겨 야구장을 방문했다! 하지만 이게 웬걸? 치맥에 정신이 팔린 욱제는 그만 자신의 관중석 위치가 담긴 티켓을 잃어버리고 말았다. 욱제가 유일하게 기억하는 것이라고는 자신의 관중석 번호 K뿐이다.당신은 한화 이글스의 감독이다. 열혈 인 욱제의 방문에 깊은 감동을 받은 당신은 욱제가 잃어버린 자리를 찾아주려고 한다. 오늘 경기가 펼쳐지는 잠실구장은 세로 길이가 N, 가로 길이가 M인 N≤M 크기의 관중석을 가지고 있다. 관중석의 왼쪽 위는 (0, 0), 오른쪽 아래는 (N-1, M-1)으로 표시된다. 각 관중석에는 번호가 아래 그림처럼 매겨져있다. (..
Koala - 9기/기초 알고리즘 스터디
10869번: 사칙연산 (acmicpc.net) 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 let input = require('fs').readFileSync('dev/stdin').toString().split(' '); const num1 = Number(input[0]); const num2 = Number(input[1]); console.log(num1 + num2); console.log(num1 - num2); console.log(num1 * num2); console.log(Math.floor(num1 / num2)); console.log(n..
🔎 처음 시도 이중 포문으로 하나하나 비교하면 되겠지?라는 생각으로 모두 비교해줬는데, 이렇게 하면 입력이 한꺼번에 주어졌을 때 밀리는 현상 때문에 올바르게 판단을 못한다. 얘가 검사를 다할 때까지 sleep을 건다고 쳐도, 잘못된 알고리즘인 것같다는 생각이 들었다. 어쨌든 문자열을 보려면 모든 문자열을 다 확인해봐야 하는데,, 어떻게 할까 하다가 알게된 find 함수 str.find(찾고자하는 문자열) 형식으로 사용된다. 만약 값을 찾으면 str의 해당 인덱스가 반환되고, 없으면 -1을 반환한다. 🤔 두 번째 시도 cnt = 26 # 총 알파벳 개수 while True: sentence = input() sentence.replace(" ", "") if sentence == '*': break for..
https://www.acmicpc.net/problem/15917 15917번: 노솔브 방지문제야!! 어떤 수 a가 2의 거듭제곱꼴로 나타내어진다고 해 봅시다. 그렇다면, a = 2n (단 n ≥ 0인 정수) 를 만족할 겁니다. 보통, 각 비트별로 검사를 하면서, 켜져 있는 비트의 개수를 알아내는 것도 좋은 www.acmicpc.net 소스코드 input = __import__('sys').stdin.readline q = int(input()) for i in range(q): cnt=0 a = int(input()) if a == 1: cnt += 1 print(1) while a % 2 != 1: if a // 2 == 1: cnt+=1 print(1) break else: a = a // 2 i..
문제 문제 해석 x, y값의 부호에 따라 몇 사분면에 해당하는지 구하는 문제이다. 문제 풀이 x축과 y축은 사분면에 해당하지 않으므로 제외해준다. 사분면에는 총 4개의 사분면이 있으므로 총 4가지 경우로 나눠주기 위해 if-elif-else문을 이용한다. 맨 처음 x값과 y값을 받아야 하므로 int(input())을 써준다. 문제 코드
https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 문제 문제 해석 1과 9 사이의 자연수 N이 주어질 때 구구단 N단의 식과 그 답을 순서대로 출력하는 문제이다 문제 풀이 변수 n을 정수로 입력받은 뒤 n * i = ans 형식으로 출력하면 된다. 이 때이때 i가 1부터 9까지 반복되므로 반복문 for을 이용하였다. 이때 range 함수를 이용해 1부터 (10-1)까지의 범위를 입력할 수 있다. 출력문은 숫자와 문자로 이루어져 있으므로 콤마로 구분해주고, 문자에는 따옴표를 붙여 컴파일 오류가 나지 않도록 해준다. * print부분의 코드를 ..
https://www.acmicpc.net/problem/20540 20540번: 연길이의 이상형 졸업을 앞둔 연길이는 크리스마스가 다가올수록 외로움을 느낀다. 그런 연길이를 위해 동우는 소개팅을 시켜주지는 않고 연길이의 이상향을 찾는 것을 도와주고자 한다. MBTI 신봉자인 연길이는 www.acmicpc.net 문제분석 입력은 MBTI가 문자열로 주어지고 4가지 지표가 모두 반대되는 MBTI를 출력해야한다. 문제풀이 지표 설명 외향(Extroversion) 내향(Introversion) 선호하는 세계:세상과 타인 / 내면 세계 감각(Sensation) 직관(iNtuition) 인식형태: 실제적인 인식/ 실제 너머로 인식 사고(Thinking) 감정(Feeling) 판단기준: 사실과 진실 위주 / 관계와..
문제 15917번: 노솔브 방지문제야!! 어떤 수 a가 2의 거듭제곱꼴로 나타내어진다고 해 봅시다. 그렇다면, a = 2n (단 n ≥ 0인 정수) 를 만족할 겁니다. 보통, 각 비트별로 검사를 하면서, 켜져 있는 비트의 개수를 알아내는 것도 좋은 www.acmicpc.net 문제 해석 주어진 숫자를 2^n으로 딱 떨어지게 표현할 수 있으면 1, 아니면 0을 출력해야 하는 문제이다. 문제 풀이 숫자를 2의 거듭제곱인지 아닌지 판별하는 가장 쉬운 방법은, 십진수인 정수를 이진수로 변환하여 생각하는 것이다. 이진수로 변환했을 때, 전체 자리 중 1이 가장 첫 번째 자리에 한 번만 등장하는 경우에 2의 거듭제곱이라는 점을 이용하였다. 전체 코드 input = __import__('sys').stdin.read..
문제 링크 2742번: 기찍 N 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 문제 해석 연속된 세 수 사이에 곱셈과 나눗셈을 한번씩만 사용해서 가장 큰 값를 구하는 문제이다. 세 수의 위치는 변하지 않기 때문에 연산 기호의 위치만 서로 바꿀 수 있다. 코드 #include using namespace std; int main() { int N; cin >> N; for (int i = N; i >= 1; i--) { cout
15917번: 노솔브 방지문제야!! 어떤 수 a가 2의 거듭제곱꼴로 나타내어진다고 해 봅시다. 그렇다면, a = 2n (단 n ≥ 0인 정수) 를 만족할 겁니다. 보통, 각 비트별로 검사를 하면서, 켜져 있는 비트의 개수를 알아내는 것도 좋은 www.acmicpc.net 문제 풀이 자연수 $n$에 대하여 $n$을 2의 거듭제곱으로 나타낼 수 있다면 이진수로 나타내었을 때 모든 자릿수에서 1이 하나 뿐일 것이다. 이진수는 0과 1로만 구성되어 있으므로 모든 자릿수의 합은 1의 개수가 된다. 따라서 $n$을 이진수로 나타냈을 때 모든 자릿수의 합이 1이면 1, 1이 아니라면 0을 출력한다. 소스 코드 Q = int(input()) ans = [] for _ in range(Q): input = __impor..