adventofcode/2022/day07/Directory.java
Fennel Kora 08333d2743 Fixed a couple errors i nDirectory class, but no progress on resolving part 2
Changes to be committed:
	modified:   2022/day07/Day07A.class
	modified:   2022/day07/Day07A.java
	modified:   2022/day07/Directory.class
    modified:   2022/day07/Directory.java
2022-12-08 17:25:41 -05:00

71 lines
No EOL
1.7 KiB
Java

import java.util.ArrayList;
public class Directory {
private String dirName;
private String parentDirName;
private ArrayList<Integer> files = new ArrayList<Integer>();
private ArrayList<Directory> subDirs = new ArrayList<Directory>();
private int dirSize;
public Directory() {
}
public Directory(String name, String parent) {
this.dirName = name;
this.parentDirName = parent;
}
public int getDirSize() {
this.dirSize = this.calcDirSize();
return this.dirSize;
}
private int calcDirSize() {
int size = 0;
for (Directory dir : this.subDirs) {
size += dir.calcDirSize();
}
for (int i : this.files) {
size += i;
}
return size;
}
public void addDir(String s) {
this.subDirs.add(new Directory(s, this.dirName));
}
public void addFile(int i) {
this.files.add(i);
}
public String getDirName() {
return this.dirName;
}
public Directory moveToSubDir(String s) {
Directory retDir = new Directory();
Boolean foundFlag = false;
for (Directory d : subDirs) {
if (d.getDirName().compareTo(s) == 0) {
retDir = d;
foundFlag = true;
break;
}
}
if (!foundFlag) {
this.addDir(s);
}
return retDir;
}
public ArrayList<Integer> sizeHierarchy() {
ArrayList<Integer> s = new ArrayList<Integer>();
s.add(this.getDirSize());
for (Directory d : subDirs) {
s.addAll(d.sizeHierarchy());
}
return s;
}
}