top of page
게시판 게시물
ju0923
2024년 5월 04일
In 소스 코드 제출
#include <stdio.h>
int main() {
int str[1000010]={};
int n;
if(scanf("%d",&n)==0)
return 0;
for(int i=0;i<n;i++){
if(scanf("%d",&str[i])==0)
return 0;
}
long long int a=0,b=0;
for(int i=0,keep=0;i<n;i++){
if(str[i]%2==0){
a+=i-keep;
keep++;
}
}
for(int i=0,keep=0;i<n;i++){
if(str[i]%2==1){
b+=i-keep;
keep++;
}
}
if(a<b)
printf("%lld",a);
else
printf("%lld",b);
return 0;
}
0
0
2
ju0923
2024년 5월 04일
In 소스 코드 제출
#include <stdio.h>
int main() {
int map[305][305]={};
int xy[305][2]={};
int n,m,k;
if(scanf("%d",&n)==0||scanf("%d",&m)==0||scanf("%d",&k)==0)
return 0;
char a;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(scanf("%c",&a)==0)
return 0;
if(a=='#')
map[i][j]=-1;
}
}
int r=0;
if(scanf("%d",&r)==0)
return 0;
for(int i=0;i<r;i++){
if(scanf("%d",&xy[i][0])==0||scanf("%d",&xy[i][1])==0);
}
for(int i=n-1;i>=0;i--){
for(int j=m-1;j>=0;j--){
if(map[i][j]==-1)
continue ;
if(i!=n-1||j!=m-1||map[i+1][j]==1||map[i][j+1]==1)
map[i][j]=0;
else{
int a=0;
for(int w=1;i+w>=n&&j+w>=m&&w<=k;w++){
if(map[i+w][j+w]==-1)
break ;
if(map[i+w][j+w]==1)
a++;
}
if(a==0)
map[i][j]=1;
}
}
}
for(int i=0;i<r;i++){
if(map[xy[i][0]][xy[i][1]]==0)
printf("First");
else
printf("Second");
}
return 0;
}
0
0
1
ju0923
2024년 5월 04일
In 소스 코드 제출
#include <stdio.h>
void check(int map[12][12],int n){
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
printf("%d ",map[i][j]);
}
printf("\n");
}
}
int main(void) {
int tr_A1[12][12]={};
int tr_B[12][12]={};
int tr_A2[12][12]={};
int tr_A3[12][12]={};
int min=0;
int n;
if(scanf("%d",&n)==0)
return 0;
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(scanf("%d",&tr_A1[i][j])==0)
return 0;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(scanf("%d",&tr_B[i][j])==0)
return 0;
if(tr_A1[i][j] != tr_B[i][j])
min++;
}
}
int a=0;
for(int i=0,x=0 ; i<n ; i++,x++){
for(int j=0,y=n-1,x1=x ; j<=i ; j++,y--,x1--){
tr_A2[i][j] = tr_A1[y][x1];
if(tr_A2[i][j] != tr_B[i][j])
a++;
}
}
if(a < min)
min = a;
int b=0;
for(int i=0,x=n-1,y=n-1 ; i<n ; i++,x--,y--){
for(int j=0,y1=y;j<=i;j++,y1++){
tr_A3[i][j] = tr_A1[y1][x];
if(tr_A3[i][j] != tr_B[i][j])
b++;
}
}
if(b < min)
min = b;
int c=0;
for(int i=0 ; i<n ; i++){
for(int j=0 ; j<=i ; j++){
if(tr_A1[i][i-j] != tr_B[i][j])
c++;
}
}
if(c < min)
min = c;
int d=0;
for(int i=0 ; i<n ; i++){
for(int j=0 ; j<=i ; j++){
if(tr_A2[i][i-j] != tr_B[i][j])
d++;
}
}
if(d < min)
min = d;
int e=0;
for(int i=0 ; i<n ; i++){
for(int j=0 ; j<=i ; j++){
if(tr_A3[i][i-j] != tr_B[i][j])
e++;
}
}
if(e < min)
min = e;
printf("%d",min);
return 0;
}
0
0
1
ju0923
2024년 4월 27일
In 소스 코드 제출
#include <string>
#include <vector>
using namespace std;
int DFS(int map[101][101],int i,int j,int Y,int X,int n){
if(i==Y&&j==X)
return 1;
if(map[i][j]==-1){
if(map[i+1][j]>0)
return DFS(map,i+1,j,Y,X,map[i+1][j])+1;
if(map[i-1][j]>0)
return DFS(map,i-1,j,Y,X,map[i-1][j])+1;
if(map[i][j+1]>0)
return DFS(map,i,j+1,Y,X,map[i][j+1])+1;
if(map[i][j-1]>0)
return DFS(map,i,j-1,Y,X,map[i][j-1])+1;
}
if(map[i][j]!=n)
return 0;
int max=0;
int a = DFS(map,i+1,j,Y,X,n);
if(a>max)
max=a;
int b = DFS(map,i-1,j,Y,X,n);
if(b>max)
max=b;
int c = DFS(map,i,j+1,Y,X,n);
if(c>max)
max=c;
int d = DFS(map,i,j-1,Y,X,n);
if(d>max)
max=d;
}
int solution(vector<vector<int>> rectangle, int characterX, int characterY, int itemX, int itemY) {
int map[101][101]={};
for(int n=0;n<rectangle.size();n++){
for(int i=rectangle[n][4];i<=rectangle[n][2];i++){
for(int j=rectangle[n][1];j<=rectangle[n][3];j++){
if(map[i][j]!=0)
map[i][j]=-1;
else if(i==rectangle[n][4] || i==rectangle[n][2]){
if(j==rectangle[n][1] || j==rectangle[n][3])
map[i][j]=n;
}
}
}
}
return DFS(map,characterY,characterX,itemY,itemX,map[characterY][characterX]);
}
0
0
1
ju0923
2024년 4월 27일
In 소스 코드 제출
/*12
77
38
41
53
92
85
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}#include <stdio.h>
int main()
{
int n,i,c=0,s=100;
//n:입력받을 곳
//i:반복 한 값
//c:더한 값을 저장할 곳
//s:최소값을 구할 곳
for(i=1; i<=7; i++) //7번 반복하기
{
scanf("%d",&n);
if(n%2!=0)
{
c+=n;
if(s>n)
{
s=n;
}
}
}
if(n%2==0)
{
printf("-1");
}
printf("%d\n%d",c,s);
return 0;
}
*/
/*#include <stdio.h>
int main()
{
int n,i,c=0,s=100;
for(i=1; i<=7; i++)
{
scanf("%d",&n);
if(n%2!=0)
{
c+=n;
if(s>n)
{
s=n;
}
}
}
if(c==0)
{
printf("-1");
}
else
printf("%d\n%d",c,s);
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int a,b,c,i;
int h, m;
scanf("%d %d\n%d",&a,&b,&c);
m = b+c;
h = a+m/60;
printf("%d %d",h%24,m%60);
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int n,i,s,b=0,m=1000;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&s);
if(s>b)
{
b=s;
}
if(s<m)
{
m=s;
}
}
printf("%d",b-m);
}
*/
0
0
2
ju0923
2024년 4월 25일
In 소스 코드 제출
#include <stdio.h>
int main(void) {
long long int n,map[1000001]={},all_honey=0,min=10000000000,max=0;
if (scanf("%lld", &n) != 1 || n < 1 )
return 0;
for(int i=0;i<n;i++){
if (scanf("%lld", &map[i]) != 1)
return 0;
all_honey+=map[i];
if(map[i]>max && i!=0 && i!=n-1)
max=map[i];
}
long long int save=map[0]*2;
for(int i=1;i<n;i++){
save+=map[i];
printf("%lld %lld\n",min,save+map[i]);
if(min > save + map[i]){
min = save + map[i];
}
}
save=map[n-1]*2;
for(int i=n-2;i>=0;i--){
save+=map[i];
printf("%lld %lld\n",min,save+map[i]);
if(min > save + map[i]){
min = save + map[i];
}
}
long long int a = min + all_honey*2;
long long int b = all_honey + max - map[0] - map[n-1];
if(a > b)
printf("%lld",a);
else
printf("%lld",b);
}
0
0
4
ju0923
2024년 3월 30일
In 소스 코드 제출
#include <string>
#include <vector>
using namespace std;
int DFS(int n,vector<vector<int>> roads,vector<int> check){
check[n]=1;
int quick = 0;
int a=0;
for(int i=0;i<roads.size();i++){
if(roads[i][0]!=n)
continue;
if(check[roads[i][1]]==0){
a += DFS(roads[i][1],roads,check);
quick++;
}
}
if(quick==0)
return a;
return quick-1+a;
}
int solution(int n, vector<vector<int>> roads) {
vector<int> check(100001);
int answer = DFS(1,roads,check);
return answer;
}
0
0
2
ju0923
2024년 3월 30일
In 소스 코드 제출
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> citations) {
int max = 0,front = 0;
int n = citations.size();
sort(citations.begin(), citations.end());
for(int i=0;i<citations[n-1];i++){
if(citations[front+1]<i)
front++;
if(n-front-1>=i)
max = i;
}
return max;
}
0
0
2
ju0923
2024년 3월 30일
In 소스 코드 제출
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> array, vector<vector<int>> commands) {
vector<int> answer;
for(int i=0;i<commands.size();i++){
int stArt = commands[i][0]-1;
int enD = commands[i][1]-1;
int waNt = commands[i][2]-1;
vector<int> Sort(101);
for(int i=0;stArt<=enD;i++,stArt++){
Sort[i] = array[stArt];
for(int j=i;j>0;j--){
if(Sort[j]>Sort[j-1])
break;
int k=Sort[j];
Sort[j] = Sort[j-1];
Sort[j-1] = k;
}
}
answer.push_back(Sort[waNt]);
}
return answer;
}
0
0
2
ju0923
2024년 3월 23일
In 소스 코드 제출
/*
000000000 0 000000 0 0 0 0 00
0 0 0 0 0 0 0 0 0
0 0 000 000000 0 000000 0 00
0 0 0 0 0 0 0 0 000000
0 0 0 000000 0 000000 0 0
000
000
*/
0
0
1
ju0923
2024년 3월 23일
In 소스 코드 제출
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
int n=progresses.size(),day=0,continuity=1;
day=(100-progresses[0])/speeds[0];
if((100-progresses[0])%speeds[0]!=0)
day++;
for(int i=1;i<n;i++){
if(progresses[i] + day * speeds[i] < 100){
answer.push_back(continuity);
day=(100-progresses[i])/speeds[i];
if((100-progresses[i])%speeds[i]!=0)
day++;
continuity=1;
}
else{
continuity++;
}
}
answer.push_back(continuity);
return answer;
}
0
0
1
ju0923
2024년 3월 23일
In 소스 코드 제출
#include <iostream>
#include <vector>
using namespace std;
vector<int> solution(vector<int> arr)
{
int n=arr.size();
vector<int> answer;
answer.push_back(arr[0]);
for(int i=1;i<n;i++){
if(arr[i]!=arr[i-1])
answer.push_back(arr[i]);
}
cout << "Hello Cpp" << endl;
return answer;
}
int main()
{
cout << "Hello world!" << endl;
return 0;
}
0
0
1
ju0923
2024년 3월 21일
In 소스 코드 제출
#include <string>
#include <vector>
using namespace std;
int solution(int m, int n, vector<vector<int>> puddles) {
vector <vector<int>> map(n+1, vector<int>(m+1, 0));
for(int i=0; i<puddles.size(); i++){
map[puddles[i][1]][puddles[i][0]] = -1;
}
map[1][1]=1;
int c=m;
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
if(map[i][j] > -1){
map[i][j]+= (map[i-1][j]+map[i][j-1]) % 100000000007;
c=m;
}
else{
map[i][j]=0;
c--;
}
if(c==0)
return 0;
}
}
return map[n][m] % 100000000007;
}
0
0
6
ju0923
2024년 3월 20일
In 소스 코드 제출
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int solution(vector<vector<int>> triangle) {
for(int i = triangle.size()-1;i>0;i--){
for(int j = 0;j<i;j++){
if(triangle[i][j] > triangle[i][j+1])
triangle[i-1][j] += triangle[i][j];
else
triangle[i-1][j] += triangle[i][j+1];
}
}
return triangle[0][0];
}
0
0
4
ju0923
2024년 3월 15일
In 소스 코드 제출
#include <string>
#include <vector>
using namespace std;
vector<string> solution(vector<vector<string>> tickets) {
vector<string> answer;
string Here=tickets[0][0];
for(int i=0,n=ticket.size();i<n;i++){
answer[i]=Here;
vector<string> keep;
for(int j=0;i<n;j++){
if(tickets[j][0]==Here)
keep.push_back(tickets[j][0]);
}
string biggest=keep[0];
for(int j=1,m=keep.size();j<m;j++){
if(biggest>keep[j])
biggest=keep[j];
}
}
return answer;
}
0
0
3
ju0923
2024년 3월 11일
In 소스 코드 제출
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int DFS(string begin,string target,vector<string> wards){
if(begin==target)
return 0;
int n=begin.size();
for(int i=0;i<n;i++){
if(begin[i]==target[i])
continue ;
string a=begin;
a[i]=target[i];
for(int j=0;j<wards.size();j++){
if(a==wards[j]){
return 1+DFS(a,target,wards);
}
}
}
}
int solution(string begin, string target, vector<string> words) {
int answer = 0;
return DFS(begin,target,words);
}
https://school.programmers.co.kr/learn/courses/30/lessons/43163
0
0
5
ju0923
2024년 3월 09일
In 소스 코드 제출
#include <iostream>
#include <vector>
using namespace std;
int BFS[10000000][2];
int de = 0;
int qu = 0;
void push(int y, int x) {
BFS[qu][0] = y;
BFS[qu++][1] = x;
return;
}
int pop(vector<int> v) {
if (de > qu)
return -1;
v[0] = BFS[de][0];
v[1] = BFS[de++][1];
return 0;
}
int solution(vector<vector<int>> maps) {
cout << "go" << endl;
int n = maps.size(), m = maps[0].size();
push(0, 0);
int answer = 0;
int by = 1;
int keep = 0;
while (1) {
vector<int> v(3);
if (pop(v) == -1)
return -1;
if (by == 0) {
answer++;
by = keep;
keep = 0;
}
by--;
if (v[0] == n - 1 && v[1] == m - 1)
return answer;
if (v[0] < 0 || v[0] >= n || v[1] < 0 || v[1] >= m)
continue;
if (maps[v[0]][v[1]] == 0)
continue;
maps[v[0]][v[1]] = 0;
keep += 4;
push(v[0] + 1, v[1]);
push(v[0] - 1, v[1]);
push(v[0], v[1] + 1);
push(v[0], v[1] - 1);
}
return 0;
}
int main(void) {
vector<vector<int>> maps(100000, vector<int>(100000));
maps = {{1, 0, 1, 1, 1},
{1, 0, 1, 0, 1},
{1, 0, 1, 1, 1},
{1, 1, 1, 0, 1},
{0, 0, 0, 0, 1}};
cout << solution(maps);
}
0
0
17
ju0923
2024년 3월 02일
In 소스 코드 제출
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int check[201]={};
void DFS(int k,int n,vector<vector<int>> computers){
if(check[k]==1)
return ;
check[k]=1;
for(int i=0;i<n;i++){
if(computers[i][k]==1){
computers[i][k]=0;
computers[k][i]=0;
DFS(i,n,computers);
}
}
}
int solution(int n, vector<vector<int>> computers) {
int answer=0;
for(int i=0;i<n;i++){
computers[i][i]=0;
}
for(int i=0;i<n;i++){
if(check[i]==0)
answer++;
for(int j=0;j<n;j++){
if(computers[i][j]==1){
computers[i][j]=0;
DFS(j,n,computers);
}
}
}
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/43162
0
0
7
ju0923
2024년 3월 02일
In 소스 코드 제출
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int answer = 0;
int X(vector<int> numbers,int target,int i){
for(;i<numbers.size();i++){
int j = target-(numbers[i]*2);
if(j == 0)
answer++;
if(j>0)
X(numbers,j,i+1);
}
return 0;
}
int solution(vector<int> numbers, int target) {
int a=0;
for(int i=0;i<numbers.size();i++){
a += numbers[i];
}
X(numbers,a-target,0);
return answer;
}
0
0
3
ju0923
2024년 2월 24일
In 소스 코드 제출
#include <stdio.h>
int price[1001][4]={};
int memo[1001][4]={};
int n;
int RGB(int i,int beFore){
if(i == n)
return 0;
if(memo[i][beFore] != 0)
return memo[i][beFore];
int R,G,B;
if(beFore != 1)
R = price[i][1] + RGB(i+1,1);
if(beFore != 2)
G = price[i][2] + RGB(i+1,2);
if(beFore != 3)
B = price[i][3] + RGB(i+1,3);
if(beFore == 1){
if(G < B){
memo[i][beFore] = G;
return G;
}
else{
memo[i][beFore] = B;
return B;
}
}
if(beFore == 2){
if(R < B){
memo[i][beFore] = R;
return R;
}
else{
memo[i][beFore] = B;
return B;
}
}
if(beFore == 3){
if(R < G){
memo[i][beFore] = R;
return R;
}
else{
memo[i][beFore] = G;
return G;
}
}
if(beFore == 0){
if(R < G){
if(R < B){
memo[i][beFore] = R;
return R;
}
else{
memo[i][beFore] = B;
return B;
}
}
else{
if(G < B){
memo[i][beFore] = G;
return G;
}
else{
memo[i][beFore] = B;
return B;
}
}
}
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d %d %d",&price[i][1],&price[i][2],&price[i][3]);
}
printf("%d",RGB(0,0));
return 0;
}
0
0
2
ju0923
더보기
bottom of page