DSA Partner Challenge | Week 2 wrap-up
Loop revision + 14 pattern problems. Check your logical thinking.
Sunday is not a rest day. It's a logic day.
Before patterns, nail these fundamentals:
Outer loop = ROWS (how many lines)
Inner loop = COLUMNS (what to print per line)
System.out.print("*")— no newline (Java)System.out.println()— newline after row (Java)print("*", end="")— no newline (Python)print()— newline after row (Python)
Always trace by hand before coding.
*****
*****
*****
*****
*****
for (int i=1; i<=5; i++) {
for (int j=1; j<=5; j++) System.out.print("*");
System.out.println();
}for i in range(5): print('*' * 5)*
**
***
****
*****
for (int i=1; i<=5; i++) {
for (int j=1; j<=i; j++) System.out.print("*");
System.out.println();
}for i in range(1, 6): print('*' * i)*****
****
***
**
*
for (int i=5; i>=1; i--) {
for (int j=1; j<=i; j++) System.out.print("*");
System.out.println();
}for i in range(5, 0, -1): print('*' * i)1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
for (int i=1; i<=5; i++) {
for (int j=1; j<=i; j++) System.out.print(j + " ");
System.out.println();
}for i in range(1, 6):
print(' '.join(str(j) for j in range(1, i+1)))*
**
***
****
*****
****
***
**
*
for (int i=1; i<=5; i++) { /* increasing half */
for (int j=1; j<=i; j++) System.out.print("*");
System.out.println();
}
for (int i=4; i>=1; i--) { /* decreasing half */
for (int j=1; j<=i; j++) System.out.print("*");
System.out.println();
}for i in list(range(1, 6)) + list(range(4, 0, -1)):
print('*' * i) *
**
***
****
*****
int n = 5;
for (int i=1; i<=n; i++) {
for (int j=1; j<=n-i; j++) System.out.print(" ");
for (int j=1; j<=i; j++) System.out.print("*");
System.out.println();
}n = 5
for i in range(1, n+1): print(' '*(n-i) + '*'*i)*****
****
***
**
*
int n = 5;
for (int i=n; i>=1; i--) {
for (int j=1; j<=n-i; j++) System.out.print(" ");
for (int j=1; j<=i; j++) System.out.print("*");
System.out.println();
}n = 5
for i in range(n, 0, -1): print(' '*(n-i) + '*'*i) *
***
*****
*******
*********
Stars per row =
2*i - 1| Spaces before =n - i
int n = 5;
for (int i=1; i<=n; i++) {
for (int j=1; j<=n-i; j++) System.out.print(" ");
for (int j=1; j<=2*i-1; j++) System.out.print("*");
System.out.println();
}n = 5
for i in range(1, n+1): print(' '*(n-i) + '*'*(2*i-1))*********
*******
*****
***
*
int n = 5;
for (int i=n; i>=1; i--) {
for (int j=1; j<=n-i; j++) System.out.print(" ");
for (int j=1; j<=2*i-1; j++) System.out.print("*");
System.out.println();
}n = 5
for i in range(n, 0, -1): print(' '*(n-i) + '*'*(2*i-1))* *
** **
*** ***
**** ****
**********
**** ****
*** ***
** **
* *
Stars on each side =
i| Spaces in middle =2*(n-i)
int n = 5;
for (int i=1; i<=n; i++) { // top
for(int j=1;j<=i;j++) System.out.print("*");
for(int j=1;j<=2*(n-i);j++) System.out.print(" ");
for(int j=1;j<=i;j++) System.out.print("*");
System.out.println();
}
for (int i=n; i>=1; i--) { // bottom
for(int j=1;j<=i;j++) System.out.print("*");
for(int j=1;j<=2*(n-i);j++) System.out.print(" ");
for(int j=1;j<=i;j++) System.out.print("*");
System.out.println();
}n = 5
for i in list(range(1, n+1)) + list(range(n, 0, -1)):
print('*'*i + ' '*(2*(n-i)) + '*'*i)****
* *
* *
****
int r=4, c=4;
for (int i=1; i<=r; i++) {
for (int j=1; j<=c; j++)
System.out.print(i==1||i==r||j==1||j==c ? "*" : " ");
System.out.println();
}r, c = 4, 4
for i in range(r):
for j in range(c):
print('*' if i==0 or i==r-1 or j==0 or j==c-1 else ' ', end='')
print()1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
int n=5, num=1;
for (int i=1; i<=n; i++) {
for (int j=1; j<=i; j++) System.out.print(num++ + " ");
System.out.println();
}1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
for (int i=1; i<=5; i++) {
for (int j=1; j<=i; j++) System.out.print(i + " ");
System.out.println();
}for i in range(1, 6): print((str(i)+' ') * i)1
0 1
1 0 1
0 1 0 1
1 0 1 0 1
Odd rows start with 1. Even rows start with 0. Flip with
1 - starteach step.
for (int i=1; i<=5; i++) {
int start = (i % 2 == 0) ? 0 : 1;
for (int j=1; j<=i; j++) {
System.out.print(start + " ");
start = 1 - start;
}
System.out.println();
}for i in range(1, 6):
start = i % 2 # odd row → 1, even row → 0
row = []
for j in range(i):
row.append(str(start)); start = 1 - start
print(' '.join(row))- I know: outer loop = rows, inner loop = columns
- I can print without newline in Java and Python
- I traced each pattern manually before coding
- I solved all 14 patterns
- I know the pyramid formula: spaces = n-i, stars = 2*i-1
- I understand the 0-1 flip trick:
start = 1 - start - I know the butterfly = top half + bottom half, same logic
Which pattern took you the longest? Drop the number in the community.
Solved all 14? Drop a 🔥 in the community.
Next up → Day 15: Strings & StringBuilder — the most important topic. Week 3 begins.