Programming 기초
-
[bj 3052] c++ 풀이 및 bits/stdc++.hProgramming 기초/Coding Test 2024. 7. 19. 10:08
https://www.acmicpc.net/problem/3052 내 풀이#includeusing namespace std;int main(int argc, char** argv){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int array[43]={0}; int tmp; int cnt=0; while (cin >>tmp) { int remain = tmp%42; if (!array[remain]){ array[remain]=1; ++cnt; } } cout 찾아본 풀이#includeusing nam..
-
[bj 10809] c++ 풀이 -> 문자열 동적할당 직접 구현하기Programming 기초/Coding Test 2024. 7. 12. 19:27
https://www.acmicpc.net/problem/10809#include#includeusing namespace std;int main(int argc, char** argv){ int cnt[26] = { 0 , }; string s; cin >> s; for (char i = 'a'; i 코드 출처 : https://cryptosalamander.tistory.com/11std::string과 std::find를 사용하면 쉽게 구현할 수 있는데, string을 문자열 동적할당을 이용해서 직접 구현해보았다. #includeusing namespace std;// 문자열의 길이를 반환하는 함수int slen(const char* str) { int index = 0; w..
-
[c++/bj 1152] 단어의 개수 : getline, cin 풀이Programming 기초/Coding Test 2024. 7. 2. 08:44
공백으로 구분되는 영어 단어의 나열인 문자열이 주어진다. 문자열은 공백으로 시작하거나 끝날 수 있다.#includeusing namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int cnt = 0; string str; getline(cin, str); int pre = ' '; for (int i: str) { if (pre == ' ' && i != ' ') { cnt += 1; } pre = i; } cout cin은 공백을 기준으로..
-
[C++] cin.ignore와 버퍼에 대한 이해Programming 기초/C++ 2024. 6. 28. 19:31
cin cin은 character input의 약자로, 버퍼의 값을 읽어온다. 만약 버퍼에 읽어올 값이 없으면 표준입력스트림으로부터 입력을 받아와 버퍼에 저장하고나서 버퍼의 값을 읽어온다.입력을 받는다는 것이 아닌 버퍼를 먼저 읽으려고 한다는 관점이 중요하다.(버퍼는 자료구조 queue와 유사하다. 선입선출로 작동한다.) 'cin >>' 은 공백(스페이스, 탭, 줄바꿈)문자를 기준으로 끊어서 읽어오고, 공백문자는 무시한다.#include using namespace std;int main() { char name[100]; cout > name; cout 0. 버퍼에 다음과 같이 저장된다. [ j ] [ o ] [ h ] [ n ] [ ' ' ] [ n ] [ a ] [ n ] [ a ]..
-
[softeer] 함께하는 효도 - 파이썬Programming 기초/Coding Test 2024. 6. 28. 00:02
함께하는 효도 문제https://softeer.ai/practice/7727 파이썬 정답코드import sysfrom itertools import product# 한 명이 움직이는 모든 방향의 조합 : [(0~3), (0~3), (0~3)] -> 4^3 = 64# 모든 인원의 움직이는 방향의 조합 : (64) ^ 3 = 263144input = sys.stdin.readlinen, m = map(int,input().split())graph = [list(map(int, input().split())) for _ in range(n)]start_positions = [list(map(int, input().split())) for _ in range(m)]# 모든 경우의 수t = 3 # 3초paths..
-
[softeer] 나머지 정리 활용Programming 기초/Coding Test 2024. 6. 26. 22:28
바이러스 - pythonhttps://softeer.ai/practice/6284 import sys# 2초# 1000000007# k*p^n % (7+10^8)input = sys.stdin.readlinek, p, n = map(int, input().split())result = k % 1000000007remainder = p % 1000000007for _ in range(n): result = (result * remainder) % 1000000007print(result) pow 내장함수 사용할 경우아래와 같이 간단하다.k*pow(p,n,1000000007)%1000000007 나머지 정리를 이용한 정답 코드는 아래와 같은 원리로 작동한다.A * B * C * D ... % Q 는 ..
-
[softeer] 진정한 효도 - pythonProgramming 기초/Coding Test 2024. 6. 26. 21:02
import sys# 1초 고려하자# 비용 = max - min (해당 라인), 6라인의 브루트포스# cost = [row1, column1, row2, column2, row3, column3]input = sys.stdin.readlinecost = []matrix = [list(map(int,input().split())) for _ in range(3)]for i in range(3): cost.append(max(matrix[i]) - min(matrix[i])) column = [matrix[j][i] for j in range(3)] # i번째 컬럼 cost.append(max(column)-min(column))print(min(cost))
-
[softeer] str concatenate 은 += 가 아닌 join 메소드를 사용하자Programming 기초/Coding Test 2024. 6. 25. 23:43
한양대 HCPC 2023] X marks the Spotimport sysinput = sys.stdin.readlinen = int(input())result = []for _ in range(n) : s, t = input().split() result.append(t[s.upper().find('X')].upper())print("".join(result)) 처음에 += 로 result를 작성했는데, 5초가 넘어버려서 시간 초과가 떴다.join 메소드로 변경하니 시간이 1초대로 나왔다. string은 +를 할 때 두 문자열 길이만큼의 연산 시간이 걸린다.그 이유는 s1,s2 라는 각각의 변수에 string을 저장해두었다고 하면, s = s1+s2 연산시 새로운 메모리 공간에 s1를 복사하..