Algorithm
Problem Name: Mathematics -
https://www.hackerrank.com/challenges/maximum-draws/problem?isFullScreen=true
In this HackerRank in Mathematics -
A person is getting ready to leave and needs a pair of matching socks. If there are n colors of socks in the drawer, how many socks need to be removed to be certain of having a matching pair?
Example n = 2
There are 2 colors of socks in the drawer. If they remove 2 socks, they may not match. The minimum number to insure success is 3.
Function Description
Complete the maximumDraws function in the editor below.
maximumDraws has the following parameter:
- int n: the number of colors of socks
Returns
- int: the minimum number of socks to remove to guarantee a matching pair.
Input Format
The first line contains the number of test cases, t.
Each of the following t lines contains an integer n.
Constraints
1 <= t <= 1000
0 <= n <= 106
Sample Input
2
1
2
Sample Output
2
3
Explanation
Case 1 : Only 1 color of sock is in the drawer. Any 2 will match.
Case 2 : 2 colors of socks are in the drawer. The first two removed may not match. At least 3 socks need to be removed to guarantee success.
Code Examples
#1 Code Example with C Programming
Code -
C Programming
#include <stdio.h>
int main()
{
int t,i;
scanf("%d",&t);
int colors[t],ans[t];
for (i = 0; i < t ; i++){
scanf("%d",&colors[i]);
ans[i] = colors[i] + 1;
}
for (i = 0; i < t ; i++){
printf("%d \n",ans[i]);
}
return 0;
}
Copy The Code &
Try With Live Editor
#2 Code Example with C++ Programming
Code -
C++ Programming
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t, n;
cin >> t;
for(int i=0; i < t; i++)
{
cin >> n;
cout << n+1 << '\n';
}
return 0;
}
Copy The Code &
Try With Live Editor
#3 Code Example with Java Programming
Code -
Java Programming
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result {
/*
* Complete the 'maximumDraws' function below.
*
* The function is expected to return an INTEGER.
* The function accepts INTEGER n as parameter.
*/
public static int maximumDraws(int n) {
// Write your code here
return n+1;
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int t = Integer.parseInt(bufferedReader.readLine().trim());
IntStream.range(0, t).forEach(tItr -> {
try {
int n = Integer.parseInt(bufferedReader.readLine().trim());
int result = Result.maximumDraws(n);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
});
bufferedReader.close();
bufferedWriter.close();
}
}
Copy The Code &
Try With Live Editor
#4 Code Example with Javascript Programming
Code -
Javascript Programming
'use strict';
const fs = require('fs');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', function(inputStdin) {
inputString += inputStdin;
});
process.stdin.on('end', function() {
inputString = inputString.split('\n');
main();
});
function readLine() {
return inputString[currentLine++];
}
/*
* Complete the 'maximumDraws' function below.
*
* The function is expected to return an INTEGER.
* The function accepts INTEGER n as parameter.
*/
function maximumDraws(n) {
return n + 1;
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const t = parseInt(readLine().trim(), 10);
for (let tItr = 0; tItr < t; tItr++) {
const n = parseInt(readLine().trim(), 10);
const result = maximumDraws(n);
ws.write(result + '\n');
}
ws.end();
}
Copy The Code &
Try With Live Editor
#5 Code Example with Python Programming
Code -
Python Programming
#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'maximumDraws' function below.
#
# The function is expected to return an INTEGER.
# The function accepts INTEGER n as parameter.
#
def maximumDraws(n):
# Write your code here
return n+1
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
t = int(input().strip())
for t_itr in range(t):
n = int(input().strip())
result = maximumDraws(n)
fptr.write(str(result) + '\n')
fptr.close()
Copy The Code &
Try With Live Editor