목록[IT]/백준 (58)
할껀하고놀자
조건 파란 구슬이 구멍에 빠져서는 안된다. 파란 구슬과 빨간 구슬이 동시에 빠져서도 안된다. 빨간 구슬과 파란 구슬이 동시에 움직이고, 굴리면 벽에 부딪힐 때까지 굴러간다. 구슬 2개가 동시에 움직이기 떄문에, 4차원 배열을 통해 방문 여부를 체킹해주면 편하다. 구동 순서 초기화 진행한다. q에 빨간 구슬의 (x,y)좌표와 파랑구슬의 (x,y) 좌표가 전부 들어간다. 방문 여부를 확인할 check 배열을 4차원 배열로 표현해준다. 배열의 인덱스는 빨간x 빨간y 파랑x 파랑y 이다. 구슬을 상하좌우로 굴려본다. 구슬을 굴릴 때, 구슬의 다음 위치가 벽인지, 구슬의 현재 위치가 구멍인지 확인한다. 구슬의 다음위치가 벽이라면, 앞으로 가지 못한다. 구슬의 현재 위치가 구멍이라면, 현재 구슬의 색이 무슨 색인지..
완전탐색에 관한 공부를 진행하면서 풀이한 문제입니다. 종만북에서는 재귀를 공부했는데 풀이는 while로 풀었습니다;; ['1','2','3'] -> [1,2,3] 으로 바꾸는 마법코드를 배울 수 있었습니다. li = list(map(int,li)) 맵으로 한번 int 처리해주고 다시 list 화 시키면 되는 것 같습니다. sum(li) 라는 고마운 함수를 이용하여 li 내부값을 모두 더해주고, 이것으로 답과 비교합니다. 아무것도 담기지 않았을 때 0을 반환해주었고, 그 이외에는 ans 에서 가장 작은 요소를 반환해주었습니다. n = int(input()) ans = [] def solution(n): value = n while n!=0: li = list(str(n)) li = list(map(int,..
import sys sys.stdin = open('1.txt') r="" num = int(input()) for _ in range(num): r += input().lower()+'\n' print(r) 다른 사람 풀이 import sys n = int(sys.stdin.readline()) for _ in range(n): s = sys.stdin.readline().rstrip() print(s.lower())
num1 = int(input()) operator = input() num2 = int(input()) if operator=='*': print(num1*num2) else: print(num1+num2) print(eval(input()+input()+input())) 다른사람 풀이
import sys sys.stdin = open('1.txt') n = int(input()) for i in range(n): li = input().split(' ') flag = False if li[1]=='*': tmp = int(li[0])*int(li[2]) if tmp == int(''.join(li[-1:])): flag=True elif li[1]=='+': tmp = int(li[0])+int(li[2]) if tmp == int(''.join(li[-1:])): flag=True elif li[1]=='-': tmp = int(li[0])-int(li[2]) if tmp == int(''.join(li[-1:])): flag=True elif li[1]=='/': tmp = int..
- 파이썬의 factorial library 를 쓰면 빠르게 풀 수 있다. import math,sys sys.stdin = open('1.txt') k = int(input()) for i in range(k): r,n = map(int, input().split()) print(math.factorial(n)//(math.factorial(n-r)*math.factorial(r)))
C++ code #include #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); long s; cin >> s; deque list; while (s != 1) { list.push_front(s % 2); s /= 2; } list.push_front(1); deque new_list = list; for (int i = 0; i
c++ code #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); string s; cin >> s; for (int i = 0; i < s.length(); i++) { char c = s[i]; if ('a'
c++ code #include #include using namespace std; // 오답 원인 // 1. int -> long long // 2. 1에 대한 예외. if(sum if(sum> S; long long idx = 1; while (true) { long long sum = idx * (idx + 1) / 2; long long sum2 = (idx + 1) * (idx + 2) / 2; if (sum
파이썬 공부를 해보면서 c++과 얼마나 차이가 심한지 실험해보고자 두번 문제를 풀었다. c++ 코드 #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int num; cin >> num; int idx = 2; vectorlist; while (num != 1) { if (num % idx == 0) { num /= idx; list.push_back(idx); idx = 2; } else { idx++; } } for (int i : list) { cout