Separate domains (ccTLDs) are best for country-targeting, but they are also the most expensive to maintain and promote.

Subdirectories offer an advantage for language targeting as the domain authority is inherited to its subdirectories. They are also the most difficult to set up in terms of targeting: most of the time, you need to use hreflang tags or hreflang sitemap.

As for subdomains, the only case they are better than separate TLDs is when your brand includes the extension also: like Wikipedia.org. To retain the brand name, the only option for either language or country targeting would be subdomains.