#include <stdio.h>
#include <stdbool.h>
int solution(int a, int d, bool inc[], size_t inc_len) {
int res = 0;
for(int idx = 0; idx < inc_len; idx++)
if(inc[idx])
res += (a + d * idx);
return res;
}
def solution(str1, str2):
res = ""
for s1, s2 in zip(str1, str2):
res += s1 + s2
return res
문자열 출력하기
str = input()
print(str)
조건 문자열
def solution(ineq, eq, n, m):
if ineq == "<":
if eq == "=":
return int(n <= m)
if eq == "!":
return int(n < m)
if ineq == ">":
if eq == "=":
return int(n >= m)
if eq == "!":
return int(n > m)
특수문자 출력하기
str = "!@#$%^&*(\\\'\"<>?:;"
print(str)
홀짝 구분하기
a = int(input())
if a % 2:
print(f"{a} is odd")
else:
print(f"{a} is even")
홀짝에 따라 다른 값 반환하기
def odd(n):
return sum(i for i in range(1, n+1, 2))
def even(n):
return sum(i**2 for i in range(2, n+1, 2))
def solution(n):
if n % 2 == 0:
return even(n)
else:
return odd(n)
a 와 b 출력하기
# input() 입력
# strip() 문자열 앞 뒤 공백 제거
# split('') 문자열 공백 기준으로 나눔
a, b = map(int, input().strip().split(' '))
print(f'a = {a}')
print(f'b = {b}')
flag에 따라 다른 값 반환하기
def solution(a, b, flag):
if flag == 1:
return a+b
else:
return a-b
#include <stdio.h>
#include <string.h>
int solution(const char* str) {
int res = 0;
int idx = -1;
int num = 0;
int sign = 1;
while(++idx < strlen(str))
{
if(str[idx] == '-' && sign > 0)
sign *= -1;
if(str[idx] == '+' && sign < 0)
sign *= -1;
if(str[idx] >= '0' && str[idx] <= '9')
num = (num + str[idx] - '0') * 10;
if(str[idx + 1] == ' ' || str[idx + 1] == NULL)
{
res = res + sign * (num / 10);
num = 0;
}
}
return res;
}
삼각형의 완성 조건 (2)
#include <stdio.h>
int tri_check(int a, int b, int c)
{
if(a + b > c && a + c > b && b + c > a)
return 1;
return 0;
}
int solution(int sides[], size_t sides_len) {
int cnt = 0;
int idx = -1;
int lmt = sides[0] + sides[1];
while(++idx < lmt)
if(tri_check(sides[0], sides[1], idx))
cnt++;
return cnt;
}
숨어있는 숫자의 덧셈 (2)
#include <stdio.h>
#include <string.h>
int solution(const char* my_string) {
int res = 0;
int num = 0;
for(int i = 0; i < strlen(my_string) + 1; i++)
{
if(my_string[i] >= '0' && my_string[i] <= '9')
{
num += (my_string[i] - 48);
num *= 10;
}
else
{
res += num / 10;
num = 0;
}
}
return res;
}
안전지대
#include <stdio.h>
int solution(int** dot, size_t row, size_t col) {
int sqr[100][100] = {0, };
int res = 0;
for(int y = 0; y < row; y++)
for(int x = 0; x < col; x++)
{
if(dot[x][y] == 1)
{
sqr[x][y] = 1;
if(x > 0)
sqr[x - 1][y] = 1;
if(x < col - 1)
sqr[x + 1][y] = 1;
if(y > 0)
sqr[x][y - 1] = 1;
if(y < row - 1)
sqr[x][y + 1] = 1;
if(x > 0 && y > 0)
sqr[x - 1][y - 1] = 1;
if(x < col - 1 && y > 0)
sqr[x + 1][y - 1] = 1;
if(x > 0 && y < row - 1)
sqr[x - 1][y + 1] = 1;
if(x < col - 1 && y < row - 1)
sqr[x + 1][y + 1] = 1;
}
}
for(int y = 0; y < row; y++)
for(int x = 0; x < col; x++)
if(sqr[x][y])
res++;
return row * col - res;
}
영어가 싫어요
#include <stdio.h>
#include <string.h>
int str_to_int(char* numbers, int idx)
{
if(numbers[idx] == 'z')
return 0;
if(numbers[idx] == 'o')
return 1;
if(numbers[idx] == 't')
{
if(numbers[idx + 1] == 'w')
return 2;
return 3;
}
if(numbers[idx] == 'f')
{
if(numbers[idx + 1] == 'o')
return 4;
return 5;
}
if(numbers[idx] == 's')
{
if(numbers[idx + 1] == 'i')
return 6;
return 7;
}
if(numbers[idx] == 'e')
return 8;
if(numbers[idx] == 'n')
return 9;
return -1;
}
int str_int_spc(int n)
{
if(n == 1 || n == 2 || n == 6)
return 3;
if(n == 0 || n == 4 || n == 5 || n == 9)
return 4;
return 5;
}
long long solution(const char* numbers) {
long long res = 0;
int idx = -1;
while(numbers[++idx])
{
int num = str_to_int(numbers, idx);
idx = idx + str_int_spc(num) - 1;
res = res * 10 + num;
}
return res;
}
종이 자르기
#include <stdio.h>
int solution(int M, int N) {
return M * N - 1;
}
#include <stdio.h>
int idx_cnt(int n, int array[], size_t array_len)
{
int idx = -1;
int cnt = 0;
while(++idx < array_len)
if(n == array[idx])
cnt++;
return cnt;
}
int solution(int array[], size_t array_len) {
int cnt[101] = {0, };
int res = 0;
int max = 0;
int max_idx = 0;
if(array_len == 1)
return array[0];
for(int i = 1; i < array_len; i++)
{
cnt[i] = idx_cnt(i, array, array_len);
if(max < cnt[i])
{
max = cnt[i];
res = i;
}
}
for(int i = 1; i < array_len; i++)
if(max == cnt[i] && res != i)
return -1;
return res;
}
팩토리얼
#include <stdio.h>
int solution(int n) {
int fac = 1;
int idx = 0;
while(++idx)
{
fac *= idx;
if(fac > n)
return idx - 1;
}
}
A로 B만들기
#include <stdio.h>
#include <string.h>
int solution(const char* before, const char* after) {
int bef[26] = {0, };
int aft[26] = {0, };
for(int i = 0; i < strlen(before); i++)
{
bef[before[i] - 97]++;
aft[after[i] - 97]++;
}
for(int i = 0; i < 26; i++)
if(bef[i] != aft[i])
return 0;
return 1;
}
K의 개수
#include <stdio.h>
int solution(int i, int j, int k) {
int res = 0;
int idx = i - 1;
while(++idx <= j)
{
int temp = idx;
while(temp)
{
if(temp % 10 == k)
res++;
temp /= 10;
}
}
return res;
}