문제 요약
Input 설명
- 첫 번째 라인에는 s,t (s와 t는 샘의 집의 범위)
- 두 번째 라인에는 a,b (a는 사과위치, b는 오렌지위치)
- 세 번째 라인에는 m,n (m은 사과개수, n은 오렌지개수)
- 각 사과가 점 a에서 떨어지는 각각의 거리를 나타내는 공백으로 구분 된 정수
- 각 오렌지가 점 b에서 떨어지는 각각의 거리를 나타내는 공백으로 구분 된 정수
Output 설명
- 샘 집에서 떨어지는 사과 수를 인쇄
- 샘 집에서 덜어지는 오렌지 수를 인쇄
샘의 집 주위에 떨어지는 사과와 오렌지 개수를 구하는 문제
Sample Input
7 11
5 15
3 2
-2 2 1
5 -6
Sample Output
1
1
- 첫번째 사과 위치 : 5-2=3
- 두번째 사과 위치 : 5+2=7
- 세번째 사과 위치 : 5+1=6
- 첫번재 오렌지 위치 : 15+5=20
- 두번째 오렌지 위치 : 15-6=9
- 샘의 집 위치는 7~11이고 그 사이에 존재하는 사과 개수는 1개, 오렌지 개수는 1 개이다.
내 소스
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution {
static void Main(String[] args) {
string[] tokens_s = Console.ReadLine().Split(' ');
int s = Convert.ToInt32(tokens_s[0]);
int t = Convert.ToInt32(tokens_s[1]);
string[] tokens_a = Console.ReadLine().Split(' ');
int a = Convert.ToInt32(tokens_a[0]);
int b = Convert.ToInt32(tokens_a[1]);
string[] tokens_m = Console.ReadLine().Split(' ');
int m = Convert.ToInt32(tokens_m[0]);
int n = Convert.ToInt32(tokens_m[1]);
string[] apple_temp = Console.ReadLine().Split(' ');
int[] apple = Array.ConvertAll(apple_temp,Int32.Parse);
string[] orange_temp = Console.ReadLine().Split(' ');
int[] orange = Array.ConvertAll(orange_temp,Int32.Parse);
int appleSum = 0;
int orangeSum = 0;
for (int i = 0; i < m; i++)
{
int aPos = apple[i] + a;
if (aPos >= s && aPos <= t)
{
appleSum++;
}
}
for (int i = 0; i < n; i++)
{
int oPos = orange[i] + b;
if (oPos >= s && oPos <= t)
{
orangeSum++;
}
}
Console.Write("{0}\n{1}", appleSum, orangeSum);
}
}
vatsalchanana의 답안
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int s, t, a, b, n, m, d, ans1=0, ans2=0;
cin >> s >> t >> a >> b >> m >> n;
for(int i=0;i<m; i++) {
cin>>d;
d = a+d;
if(d>=s && d<=t)
ans1++;
}
for(int i=0;i<n; i++) {
cin>>d;
d = b+d;
if(d>=s && d<=t)
ans2++;
}
cout << ans1 << endl;
cout << ans2 << endl;
return 0;
}
느낀점
특정 범위 안에 수를 구하는 문제. if문과 && 연산자만 사용하면 풀 수 있는 문제이다. 문제 자체는 어려운게 없다.
문제 자체에 대한 설명이 문제의 난이도에 비해서 좀 길지 않나 싶다.