Added 27 solutions

This commit is contained in:
rshaghoulian
2017-03-05 00:26:42 -06:00
parent af8c2969a4
commit 3a6797a94a
43 changed files with 2823 additions and 598 deletions
@@ -0,0 +1,57 @@
// Author: Rodney Shaghoulian
// Github: github.com/rshaghoulian
// HackerRank: hackerrank.com/rshaghoulian
class Flower {
String whatsYourName() {
return "I have many names and types.";
}
}
class Jasmine extends Flower {
@Override
String whatsYourName() {
return "Jasmine";
}
}
class Lily extends Flower {
@Override
String whatsYourName() {
return "Lily";
}
}
class Lotus extends Flower {
@Override
String whatsYourName() {
return "Lotus";
}
}
class State {
Flower yourNationalFlower() {
return new Flower();
}
}
class WestBengal extends State {
@Override
Jasmine yourNationalFlower() {
return new Jasmine();
}
}
class Karnataka extends State {
@Override
Lotus yourNationalFlower() {
return new Lotus();
}
}
class AndhraPradesh extends State {
@Override
Lily yourNationalFlower() {
return new Lily();
}
}
@@ -0,0 +1,64 @@
// Author: Rodney Shaghoulian
// Github: github.com/rshaghoulian
// HackerRank: hackerrank.com/rshaghoulian
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface FamilyBudget {
String userRole() default "GUEST";
int budgetLimit() default 0; // edited line
}
class FamilyMember {
@FamilyBudget(userRole = "SENIOR", budgetLimit = 100) // added line
public void seniorMember(int budget, int moneySpend) {
System.out.println("Senior Member");
System.out.println("Spend: " + moneySpend);
System.out.println("Budget Left: " + (budget - moneySpend));
}
@FamilyBudget(userRole = "JUNIOR", budgetLimit = 50) // added line
public void juniorUser(int budget, int moneySpend) {
System.out.println("Junior Member");
System.out.println("Spend: " + moneySpend);
System.out.println("Budget Left: " + (budget - moneySpend));
}
}
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int testCases = Integer.parseInt(in.nextLine());
while (testCases > 0) {
String role = in.next();
int spend = in.nextInt();
try {
Class annotatedClass = FamilyMember.class;
Method[] methods = annotatedClass.getMethods();
for (Method method : methods) {
if (method.isAnnotationPresent(FamilyBudget.class)) {
FamilyBudget family = method
.getAnnotation(FamilyBudget.class);
String userRole = family.userRole();
int budgetLimit = family.budgetLimit(); // edited line
if (userRole.equals(role)) {
if(spend <= budgetLimit){ // edited line
method.invoke(FamilyMember.class.newInstance(),
budgetLimit, spend);
}else{
System.out.println("Budget Limit Over");
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
testCases--;
}
}
}
@@ -0,0 +1,73 @@
// Author: Rodney Shaghoulian
// Github: github.com/rshaghoulian
// HackerRank: hackerrank.com/rshaghoulian
import java.io.*;
import java.util.*;
interface PerformOperation {
boolean check(int a);
}
class MyMath {
public static boolean checker(PerformOperation p, int num) {
return p.check(num);
}
public static PerformOperation is_odd() {
return n -> (n & 1) == 1;
}
public static PerformOperation is_prime() {
// O(n^(1/2)) runtime
return n -> {
if (n < 2) {
return false;
}
int sqrt = (int) Math.sqrt(n);
for (int i = 2; i <= sqrt; i++) {
if (n % i == 0) {
return false;
}
}
return true;
};
}
public static PerformOperation is_palindrome() {
return n -> {
String original = Integer.toString(n);
String reversed = new StringBuilder(Integer.toString(n)).reverse().toString();
return original.equals(reversed);
};
}
}
public class Solution {
public static void main(String[] args) throws IOException {
MyMath ob = new MyMath();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
PerformOperation op;
boolean ret = false;
String ans = null;
while (T--> 0) {
String s = br.readLine().trim();
StringTokenizer st = new StringTokenizer(s);
int ch = Integer.parseInt(st.nextToken());
int num = Integer.parseInt(st.nextToken());
if (ch == 1) {
op = ob.is_odd();
ret = ob.checker(op, num);
ans = (ret) ? "ODD" : "EVEN";
} else if (ch == 2) {
op = ob.is_prime();
ret = ob.checker(op, num);
ans = (ret) ? "PRIME" : "COMPOSITE";
} else if (ch == 3) {
op = ob.is_palindrome();
ret = ob.checker(op, num);
ans = (ret) ? "PALINDROME" : "NOT PALINDROME";
}
System.out.println(ans);
}
}
}
+26
View File
@@ -0,0 +1,26 @@
// Author: Rodney Shaghoulian
// Github: github.com/rshaghoulian
// HackerRank: hackerrank.com/rshaghoulian
import java.util.Scanner;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Solution {
public static void main(String[] args) throws NoSuchAlgorithmException {
/* Read and save the input String */
Scanner scan = new Scanner(System.in);
String str = scan.next();
scan.close();
/* Encode the String using MD5 */
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] digest = md.digest();
/* Print the encoded value in hexadecimal */
for (byte b : digest) {
System.out.format("%02x", b);
}
}
}
+26
View File
@@ -0,0 +1,26 @@
// Author: Rodney Shaghoulian
// Github: github.com/rshaghoulian
// HackerRank: hackerrank.com/rshaghoulian
import java.util.Scanner;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Solution {
public static void main(String[] args) throws NoSuchAlgorithmException {
/* Read and save the input String */
Scanner scan = new Scanner(System.in);
String str = scan.next();
scan.close();
/* Encode the String using SHA-256 */
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(str.getBytes());
byte[] digest = md.digest();
/* Print the encoded value in hexadecimal */
for (byte b : digest) {
System.out.format("%02x", b);
}
}
}
@@ -0,0 +1,242 @@
// Author: Rodney Shaghoulian
// Github: github.com/rshaghoulian
// HackerRank: hackerrank.com/rshaghoulian
import java.util.ArrayList;
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.util.ArrayList;
import java.util.Scanner;
enum Color {
RED, GREEN
}
abstract class Tree {
private int value;
private Color color;
private int depth;
public Tree(int value, Color color, int depth) {
this.value = value;
this.color = color;
this.depth = depth;
}
public int getValue() {
return value;
}
public Color getColor() {
return color;
}
public int getDepth() {
return depth;
}
public abstract void accept(TreeVis visitor);
}
class TreeNode extends Tree {
private ArrayList<Tree> children = new ArrayList<>();
public TreeNode(int value, Color color, int depth) {
super(value, color, depth);
}
public void accept(TreeVis visitor) {
visitor.visitNode(this);
for (Tree child : children) {
child.accept(visitor);
}
}
public void addChild(Tree child) {
children.add(child);
}
}
class TreeLeaf extends Tree {
public TreeLeaf(int value, Color color, int depth) {
super(value, color, depth);
}
public void accept(TreeVis visitor) {
visitor.visitLeaf(this);
}
}
abstract class TreeVis {
public abstract int getResult();
public abstract void visitNode(TreeNode node);
public abstract void visitLeaf(TreeLeaf leaf);
}
// Useful tutorial for Visitor Pattern:
// https://www.tutorialspoint.com/design_pattern/visitor_pattern.htm
//
// I recommend skipping this problem since it's more about creating a
// tree in an obscure format than it is about Visitor patterns.
class SumInLeavesVisitor extends TreeVis {
private int result = 0;
public int getResult() {
return result;
}
public void visitNode(TreeNode node) {
// do nothing
}
public void visitLeaf(TreeLeaf leaf) {
result += leaf.getValue();
}
}
class ProductOfRedNodesVisitor extends TreeVis {
private long result = 1;
private final int M = 1000000007;
public int getResult() {
return (int) result;
}
public void visitNode(TreeNode node) {
if (node.getColor() == Color.RED) {
result = (result * node.getValue()) % M;
}
}
public void visitLeaf(TreeLeaf leaf) {
if (leaf.getColor() == Color.RED) {
result = (result * leaf.getValue()) % M;
}
}
}
class FancyVisitor extends TreeVis {
private int nonLeafEvenDepthSum = 0;
private int greenLeavesSum = 0;
public int getResult() {
return Math.abs(nonLeafEvenDepthSum - greenLeavesSum);
}
public void visitNode(TreeNode node) {
if (node.getDepth() % 2 == 0) {
nonLeafEvenDepthSum += node.getValue();
}
}
public void visitLeaf(TreeLeaf leaf) {
if (leaf.getColor() == Color.GREEN) {
greenLeavesSum += leaf.getValue();
}
}
}
public class Solution {
private static int [] values;
private static Color [] colors;
private static HashMap<Integer, HashSet<Integer>> map;
public static Tree solve() {
Scanner scan = new Scanner(System.in);
int numNodes = scan.nextInt();
/* Handle 1-node tree */
if (numNodes == 1) {
return new TreeLeaf(values[0], colors[0], 0);
}
/* Read and save nodes and colors */
values = new int[numNodes];
colors = new Color[numNodes];
map = new HashMap<>(numNodes);
for (int i = 0; i < numNodes; i++) {
values[i] = scan.nextInt();
}
for (int i = 0; i < numNodes; i++) {
colors[i] = scan.nextInt() == 0 ? Color.RED : Color.GREEN;
}
/* Save edges */
for (int i = 0; i < numNodes - 1; i++) {
int u = scan.nextInt();
int v = scan.nextInt();
/* Edges are undirected: Add 1st direction */
HashSet<Integer> uNeighbors = map.get(u);
if (uNeighbors == null) {
uNeighbors = new HashSet<>();
}
uNeighbors.add(v);
map.put(u, uNeighbors);
/* Edges are undirected: Add 2nd direction */
HashSet<Integer> vNeighbors = map.get(v);
if (vNeighbors == null) {
vNeighbors = new HashSet<>();
}
vNeighbors.add(u);
map.put(v, vNeighbors);
}
scan.close();
/* Create Tree */
TreeNode root = new TreeNode(values[0], colors[0], 0);
addChildren(root, 1);
return root;
}
/* Recursively adds children of a TreeNode */
private static void addChildren(TreeNode parent, Integer parentNum) {
/* Get HashSet of children and loop through them */
for (Integer treeNum : map.get(parentNum)) {
map.get(treeNum).remove(parentNum); // removes the opposite arrow direction
/* Add child */
HashSet<Integer> grandChildren = map.get(treeNum);
boolean childHasChild = (grandChildren != null && !grandChildren.isEmpty());
Tree tree;
if (childHasChild) {
tree = new TreeNode(values[treeNum - 1], colors[treeNum - 1], parent.getDepth() + 1);
} else {
tree = new TreeLeaf(values[treeNum - 1], colors[treeNum - 1], parent.getDepth() + 1);
}
parent.addChild(tree);
/* Recurse if necessary */
if (tree instanceof TreeNode) {
addChildren((TreeNode) tree, treeNum);
}
}
}
public static void main(String[] args) {
Tree root = solve();
SumInLeavesVisitor vis1 = new SumInLeavesVisitor();
ProductOfRedNodesVisitor vis2 = new ProductOfRedNodesVisitor();
FancyVisitor vis3 = new FancyVisitor();
root.accept(vis1);
root.accept(vis2);
root.accept(vis3);
int res1 = vis1.getResult();
int res2 = vis2.getResult();
int res3 = vis3.getResult();
System.out.println(res1);
System.out.println(res2);
System.out.println(res3);
}
}
@@ -10,7 +10,7 @@ class Checker implements Comparator<Player> {
if (p1.score == p2.score) {
return p1.name.compareTo(p2.name);
} else {
return p2.score - p1.score;
return p2.score - p1.score; // descending order
}
}
}
@@ -6,7 +6,6 @@ import java.util.Scanner;
import java.time.LocalDate;
public class Solution {
public static void main(String[] args) {
/* Read input */
Scanner scan = new Scanner(System.in);
@@ -17,7 +17,7 @@ import java.security.Permission;
class Calculate {
static Scanner scan = new Scanner(System.in);
static Output output = new Output();
public static Calculate do_calc() {
return new Calculate();
}
@@ -64,61 +64,3 @@ class Output {
System.out.format("%.3f%n", value);
}
}
public class Solution {
public static void main(String[] args) {
DoNotTerminate.forbidExit();
try {
Calculate cal = new Calculate();
int T = cal.get_int_val();
while (T--> 0) {
double volume = 0.0;
int ch = cal.get_int_val();
if (ch == 1) {
int a = cal.get_int_val();
volume = Calculate.do_calc().get_volume(a);
} else if (ch == 2) {
int l = cal.get_int_val();
int b = cal.get_int_val();
int h = cal.get_int_val();
volume = Calculate.do_calc().get_volume(l, b, h);
} else if (ch == 3) {
double r = cal.get_double_val();
volume = Calculate.do_calc().get_volume(r);
} else if (ch == 4) {
double r = cal.get_double_val();
double h = cal.get_double_val();
volume = Calculate.do_calc().get_volume(r, h);
}
cal.output.display(volume);
}
} catch (NumberFormatException e) {
System.out.print(e);
} catch (IOException e) {
e.printStackTrace();
} catch (DoNotTerminate.ExitTrappedException e) {
System.out.println("Unsuccessful Termination!!");
}
} // end of main
} // end of Solution
/**
* This class prevents the user form using System.exit(0)
* from terminating the program abnormally.
*/
class DoNotTerminate {
public static class ExitTrappedException extends SecurityException {}
public static void forbidExit() {
final SecurityManager securityManager = new SecurityManager() {
@Override
public void checkPermission(Permission permission) {
if (permission.getName().contains("exitVM")) {
throw new ExitTrappedException();
}
}
};
System.setSecurityManager(securityManager);
}
} // end of Do_Not_Terminate
+64 -64
View File
@@ -2,68 +2,68 @@
| Domain | Subdomain | Challenge | Difficulty | Solution |
|:------:|:---------------------------:|:------------------------------------------------------------------------------------------------------------------------:|:----------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| Java | Introduction | [Welcome to Java!](https://www.hackerrank.com/challenges/welcome-to-java) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Welcome%20to%20Java!/Solution.java) |
| Java | Introduction | [Java Stdin and Stdout I](https://www.hackerrank.com/challenges/java-stdin-and-stdout-1) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Stdin%20and%20Stdout%20I/Solution.java) |
| Java | Introduction | [Java If-Else](https://www.hackerrank.com/challenges/java-if-else) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20If-Else/Solution.java) |
| Java | Introduction | [Java Stdin and Stdout II](https://www.hackerrank.com/challenges/java-stdin-stdout) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Stdin%20and%20Stdout%20II/Solution.java) |
| Java | Introduction | [Java Output Formatting](https://www.hackerrank.com/challenges/java-output-formatting) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Output%20Formatting/Solution.java) |
| Java | Introduction | [Java Loops I](https://www.hackerrank.com/challenges/java-loops-i) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Loops%20I/Solution.java) |
| Java | Introduction | [Java Loops II](https://www.hackerrank.com/challenges/java-loops) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Loops%20II/Solution.java) |
| Java | Introduction | [Java Datatypes](https://www.hackerrank.com/challenges/java-datatypes) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Datatypes/Solution.java) |
| Java | Introduction | [Java End-of-file](https://www.hackerrank.com/challenges/java-end-of-file) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20End-of-file/Solution.java) |
| Java | Introduction | [Java Static Initializer Block](https://www.hackerrank.com/challenges/java-static-initializer-block) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Static%20Initializer%20Block/Solution.java) |
| Java | Introduction | [Java Int to String](https://www.hackerrank.com/challenges/java-int-to-string) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Int%20to%20String/Solution.java) |
| Java | Introduction | [Java Data and Time](https://www.hackerrank.com/challenges/java-date-and-time) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Date%20and%20Time/Solution.java) |
| Java | Introduction | [Java Currency Formatter](https://www.hackerrank.com/challenges/java-currency-formatter) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Currency%20Formatter/Solution.java) |
| Java | Strings | [Java Strings Introduction](https://www.hackerrank.com/challenges/java-strings-introduction) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Strings%20Introduction/Solution.java) |
| Java | Strings | [Java Substring](https://www.hackerrank.com/challenges/java-substring) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Substring/Solution.java) |
| Java | Strings | [Java String Compare](https://www.hackerrank.com/challenges/java-string-compare) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20String%20Compare/Solution.java) |
| Java | Strings | [Java String Reverse](https://www.hackerrank.com/challenges/java-string-reverse) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20String%20Reverse/Solution.java) |
| Java | Strings | [Java Anagrams](https://www.hackerrank.com/challenges/java-anagrams) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Anagrams/Solution.java) |
| Java | Strings | [Java String Tokens](https://www.hackerrank.com/challenges/java-string-tokens) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20String%20Tokens/Solution.java) |
| Java | Strings | [Pattern Syntax Checker](https://www.hackerrank.com/challenges/pattern-syntax-checker) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Pattern%20Syntax%20Checker/Solution.java) |
| Java | Strings | [Java Regex](https://www.hackerrank.com/challenges/java-regex) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Regex/Solution.java) |
| Java | Strings | [Java Regex 2 - Duplicate Words](https://www.hackerrank.com/challenges/duplicate-word) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Regex%202%20-%20Duplicate%20Words/Solution.java) |
| Java | Strings | [Java Regex 3 - Username Checker](https://www.hackerrank.com/challenges/valid-username-checker) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Regex%203%20-%20Username%20Checker/Solution.java) |
| Java | Strings | [Tag Content Extractor](https://www.hackerrank.com/challenges/tag-content-extractor) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Tag%20Content%20Extractor/Solution.java) |
| Java | BigNumber | [Java BigInteger](https://www.hackerrank.com/challenges/java-biginteger) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/BigNumber/Java%20BigInteger/Solution.java) |
| Java | BigNumber | [Java BigDecimal](https://www.hackerrank.com/challenges/java-bigdecimal) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/BigNumber/Java%20BigDecimal/Solution.java) |
| Java | BigNumber | [Java Primality Test](https://www.hackerrank.com/challenges/java-primality-test) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/BigNumber/Java%20Primality%20Test/Solution.java) |
| Java | Data Structures | [Java 1D Array](https://www.hackerrank.com/challenges/java-1d-array-introduction) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%201D%20Array/Solution.java) |
| Java | Data Structures | [Java 2D Array](https://www.hackerrank.com/challenges/java-2d-array) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%202D%20Array/Solution.java) |
| Java | Data Structures | [Java Subarray](https://www.hackerrank.com/challenges/java-negative-subarray) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Subarray/Solution.java) |
| Java | Data Structures | [Java Arraylist](https://www.hackerrank.com/challenges/java-arraylist) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20ArrayList/Solution.java) |
| Java | Data Structures | [Java 1D Array (Part 2)](https://www.hackerrank.com/challenges/java-1d-array) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%201D%20Array%20(Part%202)/Solution.java) |
| Java | Data Structures | [Java List](https://www.hackerrank.com/challenges/java-list) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20List/Solution.java) |
| Java | Data Structures | [Java Map](https://www.hackerrank.com/challenges/phone-book) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Map/Solution.java) |
| Java | Data Structures | [Java Stack](https://www.hackerrank.com/challenges/java-stack) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Stack/Solution.java) |
| Java | Data Structures | [Java Hashset](https://www.hackerrank.com/challenges/java-hashset) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Hashset/Solution.java) |
| Java | Data Structures | [Java Generics](https://www.hackerrank.com/challenges/java-generics) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Generics/Solution.java) |
| Java | Data Structures | [Java Comparator](https://www.hackerrank.com/challenges/java-comparator) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Comparator/Solution.java) |
| Java | Data Structures | [Java Sort](https://www.hackerrank.com/challenges/java-sort) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Sort/Solution.java) |
| Java | Data Structures | [Java Dequeue](https://www.hackerrank.com/challenges/java-dequeue) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Dequeue/Solution.java) |
| Java | Data Structures | [Java BitSet](https://www.hackerrank.com/challenges/java-bitset) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20BitSet/Solution.java) |
| Java | Data Structures | [Java Priority Queue](https://www.hackerrank.com/challenges/java-priority-queue) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Priority%20Queue/Solution.java) |
| Java | Object Oriented Programming | [Java Inheritance I](https://www.hackerrank.com/challenges/java-inheritance-1) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Inheritance%20I/Solution.java) |
| Java | Object Oriented Programming | [Java Inheritance II](https://www.hackerrank.com/challenges/java-inheritance-2) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Inheritance%20II/Solution.java) |
| Java | Object Oriented Programming | [Java Abstract Class](https://www.hackerrank.com/challenges/java-abstract-class) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Abstract%20Class/Solution.java) |
| Java | Object Oriented Programming | [Java Interface](https://www.hackerrank.com/challenges/java-interface) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Interface/Solution.java) |
| Java | Object Oriented Programming | [Java Method Overriding](https://www.hackerrank.com/challenges/java-method-overriding) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Method%20Overriding/Solution.java) |
| Java | Introduction | [Welcome to Java!](https://www.hackerrank.com/challenges/welcome-to-java) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Welcome%20to%20Java!/Solution.java) |
| Java | Introduction | [Java Stdin and Stdout I](https://www.hackerrank.com/challenges/java-stdin-and-stdout-1) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Stdin%20and%20Stdout%20I/Solution.java) |
| Java | Introduction | [Java If-Else](https://www.hackerrank.com/challenges/java-if-else) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20If-Else/Solution.java) |
| Java | Introduction | [Java Stdin and Stdout II](https://www.hackerrank.com/challenges/java-stdin-stdout) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Stdin%20and%20Stdout%20II/Solution.java) |
| Java | Introduction | [Java Output Formatting](https://www.hackerrank.com/challenges/java-output-formatting) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Output%20Formatting/Solution.java) |
| Java | Introduction | [Java Loops I](https://www.hackerrank.com/challenges/java-loops-i) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Loops%20I/Solution.java) |
| Java | Introduction | [Java Loops II](https://www.hackerrank.com/challenges/java-loops) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Loops%20II/Solution.java) |
| Java | Introduction | [Java Datatypes](https://www.hackerrank.com/challenges/java-datatypes) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Datatypes/Solution.java) |
| Java | Introduction | [Java End-of-file](https://www.hackerrank.com/challenges/java-end-of-file) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20End-of-file/Solution.java) |
| Java | Introduction | [Java Static Initializer Block](https://www.hackerrank.com/challenges/java-static-initializer-block) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Static%20Initializer%20Block/Solution.java) |
| Java | Introduction | [Java Int to String](https://www.hackerrank.com/challenges/java-int-to-string) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Int%20to%20String/Solution.java) |
| Java | Introduction | [Java Date and Time](https://www.hackerrank.com/challenges/java-date-and-time) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Date%20and%20Time/Solution.java) |
| Java | Introduction | [Java Currency Formatter](https://www.hackerrank.com/challenges/java-currency-formatter) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Introduction/Java%20Currency%20Formatter/Solution.java) |
| Java | Strings | [Java Strings Introduction](https://www.hackerrank.com/challenges/java-strings-introduction) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Strings%20Introduction/Solution.java) |
| Java | Strings | [Java Substring](https://www.hackerrank.com/challenges/java-substring) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Substring/Solution.java) |
| Java | Strings | [Java String Compare](https://www.hackerrank.com/challenges/java-string-compare) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20String%20Compare/Solution.java) |
| Java | Strings | [Java String Reverse](https://www.hackerrank.com/challenges/java-string-reverse) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20String%20Reverse/Solution.java) |
| Java | Strings | [Java Anagrams](https://www.hackerrank.com/challenges/java-anagrams) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Anagrams/Solution.java) |
| Java | Strings | [Java String Tokens](https://www.hackerrank.com/challenges/java-string-tokens) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20String%20Tokens/Solution.java) |
| Java | Strings | [Pattern Syntax Checker](https://www.hackerrank.com/challenges/pattern-syntax-checker) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Pattern%20Syntax%20Checker/Solution.java) |
| Java | Strings | [Java Regex](https://www.hackerrank.com/challenges/java-regex) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Regex/Solution.java) |
| Java | Strings | [Java Regex 2 - Duplicate Words](https://www.hackerrank.com/challenges/duplicate-word) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Regex%202%20-%20Duplicate%20Words/Solution.java) |
| Java | Strings | [Java Regex 3 - Username Checker](https://www.hackerrank.com/challenges/valid-username-checker) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Java%20Regex%203%20-%20Username%20Checker/Solution.java) |
| Java | Strings | [Tag Content Extractor](https://www.hackerrank.com/challenges/tag-content-extractor) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Strings/Tag%20Content%20Extractor/Solution.java) |
| Java | BigNumber | [Java BigInteger](https://www.hackerrank.com/challenges/java-biginteger) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/BigNumber/Java%20BigInteger/Solution.java) |
| Java | BigNumber | [Java BigDecimal](https://www.hackerrank.com/challenges/java-bigdecimal) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/BigNumber/Java%20BigDecimal/Solution.java) |
| Java | BigNumber | [Java Primality Test](https://www.hackerrank.com/challenges/java-primality-test) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/BigNumber/Java%20Primality%20Test/Solution.java) |
| Java | Data Structures | [Java 1D Array](https://www.hackerrank.com/challenges/java-1d-array-introduction) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%201D%20Array/Solution.java) |
| Java | Data Structures | [Java 2D Array](https://www.hackerrank.com/challenges/java-2d-array) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%202D%20Array/Solution.java) |
| Java | Data Structures | [Java Subarray](https://www.hackerrank.com/challenges/java-negative-subarray) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Subarray/Solution.java) |
| Java | Data Structures | [Java Arraylist](https://www.hackerrank.com/challenges/java-arraylist) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20ArrayList/Solution.java) |
| Java | Data Structures | [Java 1D Array (Part 2)](https://www.hackerrank.com/challenges/java-1d-array) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%201D%20Array%20(Part%202)/Solution.java) |
| Java | Data Structures | [Java List](https://www.hackerrank.com/challenges/java-list) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20List/Solution.java) |
| Java | Data Structures | [Java Map](https://www.hackerrank.com/challenges/phone-book) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Map/Solution.java) |
| Java | Data Structures | [Java Stack](https://www.hackerrank.com/challenges/java-stack) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Stack/Solution.java) |
| Java | Data Structures | [Java Hashset](https://www.hackerrank.com/challenges/java-hashset) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Hashset/Solution.java) |
| Java | Data Structures | [Java Generics](https://www.hackerrank.com/challenges/java-generics) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Generics/Solution.java) |
| Java | Data Structures | [Java Comparator](https://www.hackerrank.com/challenges/java-comparator) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Comparator/Solution.java) |
| Java | Data Structures | [Java Sort](https://www.hackerrank.com/challenges/java-sort) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Sort/Solution.java) |
| Java | Data Structures | [Java Dequeue](https://www.hackerrank.com/challenges/java-dequeue) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Dequeue/Solution.java) |
| Java | Data Structures | [Java BitSet](https://www.hackerrank.com/challenges/java-bitset) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20BitSet/Solution.java) |
| Java | Data Structures | [Java Priority Queue](https://www.hackerrank.com/challenges/java-priority-queue) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Data%20Structures/Java%20Priority%20Queue/Solution.java) |
| Java | Object Oriented Programming | [Java Inheritance I](https://www.hackerrank.com/challenges/java-inheritance-1) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Inheritance%20I/Solution.java) |
| Java | Object Oriented Programming | [Java Inheritance II](https://www.hackerrank.com/challenges/java-inheritance-2) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Inheritance%20II/Solution.java) |
| Java | Object Oriented Programming | [Java Abstract Class](https://www.hackerrank.com/challenges/java-abstract-class) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Abstract%20Class/Solution.java) |
| Java | Object Oriented Programming | [Java Interface](https://www.hackerrank.com/challenges/java-interface) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Interface/Solution.java) |
| Java | Object Oriented Programming | [Java Method Overriding](https://www.hackerrank.com/challenges/java-method-overriding) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Method%20Overriding/Solution.java) |
| Java | Object Oriented Programming | [Java Method Overriding 2 (Super Keyword)](https://www.hackerrank.com/challenges/java-method-overriding-2-super-keyword) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Method%20Overriding%202%20(Super%20Keyword)/Solution.java) |
| Java | Object Oriented Programming | [Java Instanceof keyword](https://www.hackerrank.com/challenges/java-instanceof-keyword) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Instanceof%20keyword/Solution.java) |
| Java | Object Oriented Programming | [Java Iterator](https://www.hackerrank.com/challenges/java-iterator) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Iterator/Solution.java) |
| Java | Object Oriented Programming | [Calculating Volume](https://www.hackerrank.com/challenges/calculating-volume) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Calculating%20Volume/Solution.java) |
| Java | Exception Handling | [Java Exception Handling (Try-catch)](https://www.hackerrank.com/challenges/java-exception-handling-try-catch) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Exception%20Handling/Java%20Exception%20Handling%20(Try-catch)/Solution.java) |
| Java | Exception Handling | [Java Exception Handling](https://www.hackerrank.com/challenges/java-exception-handling) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Exception%20Handling/Java%20Exception%20Handling/Solution.java) |
| Java | Advanced | [Java Varargs - Simple Addition](https://www.hackerrank.com/challenges/simple-addition-varargs) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Varargs%20-%20Simple%20Addition/Solution.java) |
| Java | Advanced | [Java Reflection - Attributes](https://www.hackerrank.com/challenges/java-reflection-attributes) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Reflection%20-%20Attributes/Solution.java) |
| Java | Advanced | [Can You Access](https://www.hackerrank.com/challenges/can-you-access) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Can%20You%20Access/Solution.java) |
| Java | Advanced | [Prime Checker](https://www.hackerrank.com/challenges/prime-checker) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Prime%20Checker/Solution.java) |
| Java | Advanced | [Java Factory Pattern](https://www.hackerrank.com/challenges/java-factory) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Factory%20Pattern/Solution.java) |
| Java | Advanced | [Java Singleton Pattern](https://www.hackerrank.com/challenges/java-singleton) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Singleton%20Pattern/Solution.java) |
| Java | Advanced | [Java Visitor Pattern](https://www.hackerrank.com/challenges/java-vistor-pattern) | Medium | Coming Soon! |
| Java | Advanced | [Java Annotations](https://www.hackerrank.com/challenges/java-annotations) | Medium | Coming Soon! |
| Java | Advanced | [Covariant Return Types](https://www.hackerrank.com/challenges/java-covariance) | Easy | Coming Soon! |
| Java | Advanced | [Java Lambda Expressions](https://www.hackerrank.com/challenges/java-lambda-expressions) | Medium | Coming Soon! |
| Java | Advanced | [Java MD5](https://www.hackerrank.com/challenges/java-md5) | Medium | Coming Soon! |
| Java | Advanced | [Java SHA-256](https://www.hackerrank.com/challenges/sha-256) | Medium | Coming Soon! |
| Java | Object Oriented Programming | [Java Instanceof keyword](https://www.hackerrank.com/challenges/java-instanceof-keyword) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Instanceof%20keyword/Solution.java) |
| Java | Object Oriented Programming | [Java Iterator](https://www.hackerrank.com/challenges/java-iterator) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Java%20Iterator/Solution.java) |
| Java | Object Oriented Programming | [Calculating Volume](https://www.hackerrank.com/challenges/calculating-volume) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Object%20Oriented%20Programming/Calculating%20Volume/Solution.java) |
| Java | Exception Handling | [Java Exception Handling (Try-catch)](https://www.hackerrank.com/challenges/java-exception-handling-try-catch) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Exception%20Handling/Java%20Exception%20Handling%20(Try-catch)/Solution.java) |
| Java | Exception Handling | [Java Exception Handling](https://www.hackerrank.com/challenges/java-exception-handling) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Exception%20Handling/Java%20Exception%20Handling/Solution.java) |
| Java | Advanced | [Java Varargs - Simple Addition](https://www.hackerrank.com/challenges/simple-addition-varargs) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Varargs%20-%20Simple%20Addition/Solution.java) |
| Java | Advanced | [Java Reflection - Attributes](https://www.hackerrank.com/challenges/java-reflection-attributes) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Reflection%20-%20Attributes/Solution.java) |
| Java | Advanced | [Can You Access](https://www.hackerrank.com/challenges/can-you-access) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Can%20You%20Access/Solution.java) |
| Java | Advanced | [Prime Checker](https://www.hackerrank.com/challenges/prime-checker) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Prime%20Checker/Solution.java) |
| Java | Advanced | [Java Factory Pattern](https://www.hackerrank.com/challenges/java-factory) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Factory%20Pattern/Solution.java) |
| Java | Advanced | [Java Singleton Pattern](https://www.hackerrank.com/challenges/java-singleton) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Singleton%20Pattern/Solution.java) |
| Java | Advanced | [Java Visitor Pattern](https://www.hackerrank.com/challenges/java-vistor-pattern) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Visitor%20Pattern/Solution.java) |
| Java | Advanced | [Java Annotations](https://www.hackerrank.com/challenges/java-annotations) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Annotations/Solution.java) |
| Java | Advanced | [Covariant Return Types](https://www.hackerrank.com/challenges/java-covariance) | Easy | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Covariant%20Return%20Types/Solution.java) |
| Java | Advanced | [Java Lambda Expressions](https://www.hackerrank.com/challenges/java-lambda-expressions) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20Lambda%20Expressions/Solution.java) |
| Java | Advanced | [Java MD5](https://www.hackerrank.com/challenges/java-md5) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20MDS/Solution.java) |
| Java | Advanced | [Java SHA-256](https://www.hackerrank.com/challenges/sha-256) | Medium | [Solution.java](https://github.com/rshaghoulian/HackerRank-solutions/blob/master/Java/Advanced/Java%20SHA-256/Solution.java) |